>웹 프론트엔드 >JS 튜토리얼 >Node.js에서 ngDialog 대화 상자를 구현하는 단계에 대한 자세한 설명

Node.js에서 ngDialog 대화 상자를 구현하는 단계에 대한 자세한 설명

php中世界最好的语言
php中世界最好的语言원래의
2018-05-22 10:45:591810검색

이번에는 Node.js에서 ngDialog 대화 상자를 사용하는 구현 단계에 대해 자세히 설명하겠습니다. Node.js에서 ngDialog 대화 상자를 사용할 때 주의 사항은 무엇인가요? .

웹 사이트를 구축할 때 사용자 입력을 얻기 위해 대화 상자가 나타나거나 사용자에게 작업 확인을 요청하는 대화 상자가 나타나는 상황을 자주 접하게 됩니다. 이러한 작업을 수행하는 데 도움이 되는 AngularJS 기반 확장 모듈이 있습니다. 우아하게: ngDialog.

ngDialog는 다양한 용도를 보여주는 github의 예제 웹페이지를 제공합니다(https://github.com/likeastore/ngDialog/blob/master/example/index.html). ngDialog의 github 홈페이지의 추가 정보에는 일반적으로 사용되는 지침과 서비스에 대한 자세한 소개가 제공되어 참조할 수 있습니다. 내 기사는 순전히 ngDialog 예제를 기반으로 합니다.

ngDialog.open(옵션) 또는 ngDialog.openConfirm(옵션)을 사용하여 대화 상자를 만듭니다. 전자는 일반 대화 상자를 열고 테마, 템플릿 등 일련의 속성은 옵션을 통해 지정할 수 있습니다. 후자는 기본적으로 이스케이프를 거부하고 대화 상자 외부에서 자동으로 닫히는 대화 상자를 엽니다. options은 다음과 유사한 json 개체입니다.

{template: 'tplId',closeByEscape: false}

예제 구성

먼저 간단한 예를 살펴보겠습니다. Express 생성기를 사용하여 새 애플리케이션을 만들거나 Node.js 개발 시작하기 - 쿠키를 사용하여 로그인 상태 유지의 LoginDemo 예제를 직접 사용하세요. 모두 완료되었습니다.

작성한 파일 추가

작성한 파일은 3개입니다. ngdialog.html과 serverTpl.html 파일은 프로젝트의 public 디렉터리에 있고, ngdialog.js는 public/javascripts에 있습니다.

ngdialog.html content:

<!doctype html>
<html ng-app="myApp">
<head>
 <title>use ngDialog in AngularJS</title>
 <link rel=&#39;stylesheet&#39; href=&#39;/stylesheets/ngDialog-0.4.0.min.css&#39; ><link/>
 <link rel=&#39;stylesheet&#39; href=&#39;/stylesheets/ngDialog-theme-default-0.4.0.min.css&#39; ><link/>
 <link rel=&#39;stylesheet&#39; href=&#39;/stylesheets/ngDialog-theme-plain-0.4.0.min.css&#39; ><link/>
</head>
<body ng-controller=&#39;myController&#39;>
 <p><button type=&#39;button&#39; ng-click=&#39;openDialog()&#39;>Open Default</button></p>
 <p><button type=&#39;button&#39; ng-click=&#39;openPlainDialog()&#39;>Open Plain theme</button></p>
 <p><button type=&#39;button&#39; ng-click=&#39;openDialogUseText()&#39;>Open use text</button></p>
 <p><button type=&#39;button&#39; ng-click=&#39;openModal()&#39;>Open modal</button></p>
 <p><button type=&#39;button&#39; ng-click=&#39;openUseExternalTemplate()&#39;>Open use template on server</button></p>
 <p><button type=&#39;button&#39; ng-click=&#39;openConfirmDialog()&#39;>Open Confirm</button></p>
 <script src="/javascripts/angular-1.4.3.min.js"></script>
 <script src="/javascripts/ngDialog-0.4.0.min.js"></script>
 <script src="/javascripts/ngdialog.js"></script>
 <!-- Templates -->
 <script type="text/ng-template" id="firstDialogId">
  <p><p>text in dialog</p></p>
 </script>
</body>
</html>

ngdialog.js content:

angular.module('myApp', ['ngDialog']).
 controller('myController', function($scope,$rootScope, ngDialog){
  $scope.template = '<p><p>text in dialog</p><p><button type="button">Button</button></p><p>';
  //different template
  $scope.openDialog = function(){
   ngDialog.open({template: 'firstDialogId'});
  };
  $scope.openPlainDialog = function(){
   ngDialog.open({
    template: 'firstDialogId', //use template id defined in HTML
    className: 'ngdialog-theme-plain'
   });
  }
  $scope.openDialogUseText = function(){
   ngDialog.open({
    template: $scope.template, //use plain text as template
    plain: true,
    className: 'ngdialog-theme-plain'
   });
  }
  $scope.openModal = function(){
   ngDialog.open({
    template: '<p>Text in Modal Dialog</p>',
    plain: true,
    className: 'ngdialog-theme-default',
    closeByEscape: false,
    closeByDocument: false
   });
  }
  $scope.openUseExternalTemplate = function(){
   ngDialog.open({
    template: 'serverTpl.html',
    plain: false,
    className: 'ngdialog-theme-default',
    closeByEscape: false,
    closeByDocument: false
   });
  };
  $rootScope.userName = "ZhangSan";
  $scope.openConfirmDialog = function(){
   ngDialog.openConfirm({
    template: '<p class="ngdialog-message"><h3>Please enter your name</h3><p>User Name:<input ng-model="userName"></input></p></p><p class="ngdialog-buttons"><button type="button" class="ngdialog-button ngdialog-button-primary" ng-click="closeThisDialog()">Cancel</button><button type="button" class="ngdialog-button ngdialog-button-primary" ng-click="confirm(userName)">Confirm</button></p>',
    plain: true,
    className: 'ngdialog-theme-default'
   }).then(
    function(value){
     console.log('confirmed, value - ', value);
    },
    function(reason){
     console.log('rejected, reason - ', reason);
    }
   );
  }
  //listen events
  $rootScope.$on('ngDialog.opened', function (e, $dialog) {
    console.log('ngDialog opened: ' + $dialog.attr('id'));
  });
  $rootScope.$on('ngDialog.closed', function (e, $dialog) {
    console.log('ngDialog closed: ' + $dialog.attr('id'));
  });  
 });

serverTpl.html content:

<!doctype html>
<html>
<head>
 <title>A Server Template for ngDialog</title>
</head>
<body>
 <p>
  <h3>Server Template for ngDialog</h3>
  <li>Node.js</li>
  <li>Express</li>
  <li>AngularJS</li>
  <li>MongoDB</li>
 </p>
</body>
</html>

ngDialog 소개

ngDialog를 사용하려면 HTML에서 스크립트를 사용하여 해당 js를 도입해야 합니다. 라이브러리 파일 . 또한 헤드 부분에는 여러 CSS 파일이 도입되어야 합니다. ngdialog.html을 참조하세요.

ngDialog 라이브러리 파일은 https://github.com/likeastore/ngDialog에서 다운로드하거나 여기(http://cdnjs.com/libraries/ng-dialog)에서 다운로드할 수 있습니다. 아래 링크에서 0.4.0 버전에서 파일 이름을 바꿨습니다. 이름이 바뀐 파일은 다음과 같습니다:

  1. ngDialog-0.4.0.min.js

  2. ngDialog-0.4.0.min.css

  3. ngDialog-theme-default-0.4.0.min .css

  4. ngDialog-theme-plain-0.4.0.min.css

API 요약 학습

학습 중 몇 가지 의심에 부딪혔는데, 그 내용이 아래에 기록되어 있습니다.

대화 상자 콘텐츠 템플릿

대화 상자를 표시하려면 표시할 콘텐츠를 지정해야 합니다. 이는 template 속성을 통해 지정됩니다. 템플릿에는 세 가지 상황이 있습니다.

  1. js 또는 html 코드에 포함된 일반 텍스트 템플릿 이때 옵션에서 plain 속성을 true로 동시에 설정해야 합니다. 즉, "plain:true"입니다. 을 클릭한 다음 HTML 코드 조각을 템플릿에 직접 할당합니다. 예를 들어 template:

    Text in ngDialog

  2. HTML에서 템플릿을 정의하고 템플릿에 ID를 지정한 다음 할당합니다. "template: 'templateId'"와 같은 템플릿 옵션에 대한 ID입니다. 템플릿은 다음과 같습니다.