1

ドキュメントに従って動作する md-dialog を作成しましたが、ダイアログをトリガーする機能不全のボタンに固執しました。ダイアログを開いたり閉じたりすると、トリガー ボタン (そのコントローラー内でスクリプトを使用するすべてのもの) が機能していないように見えます。

ここにCodePenとコードがあります。

var app = angular.module('app', ['ngMaterial', 'ngAnimate']);

// Dialog controller
app.controller('showDialogCtrl',
  function ($scope, $mdDialog) {
    // Showing order form dialog
    $scope.showDialog= function($event){
      $mdDialog.show({
         targetEvent: $event,
         clickOutsideToClose: true,
         scope: $scope,
         template: 
            '<md-dialog>' +
            '  <md-dialog-content>Hello!</md-dialog-content>' +
            '  <md-dialog-actions>' +
            '    <md-button ng-click="closeDialog()" class="md-primary">' +
            '      Close' +
            '    </md-button>' +
            '  </md-dialog-actions>' +
            '</md-dialog>',
         parent: angular.element(document.body),
         controller: DialogController,
      });
      function DialogController($scope, $mdDialog) {
        $scope.closeDialog = function() {
          $mdDialog.hide();
        };
      };
    }
});    

<md-button ng-controller="showDialogCtrl" ng-click="showDialog($event)">
Click
</md-button>
4

1 に答える 1

1

$scopeをダイアログに渡しています。これは、ダイアログを閉じると自動的に削除されます。ダイアログ構成に追加preserveScope: trueして、ダイアログを閉じても削除されないようにします。

ドキュメント: https://material.angularjs.org/HEAD/api/service/$mdDialog

于 2016-05-18T13:32:07.367 に答える