이 $ mdDialog로 처음으로 작업했습니다. 외부 HTML 템플릿을 사용하여 대화 상자를 만드는 데 사용되었습니다.
지금까지는 너무 좋았습니다 ... 템플릿을 열 수는 있지만 ng-click은 더 이상 작동하지 않습니다.
그리고 그 이유를 찾을 수 없습니다.
<md-icon
layout="row"
flex md-font-set="material-icons"
class="active"
ng-click="vm.showMenu($event)">
menu
</md-icon>
userController에 $ mdDialog을 열 수있는 방법 :
mdDialog이 같은 userController에서 호출되는
vm.showMenu = function showMenu(ev){
$mdDialog.show({
controller: MenuDialogController,
templateUrl: 'app/components/head/user/menu.dialog.html',
parent: angular.element($document.body),
targetEvent: ev,
clickOutsideToClose:true,
fullscreen: $scope.customFullscreen // Only for -xs, -sm breakpoints.
})
.then(function(answer) {
$scope.status = 'You said the information was "' + answer + '".';
}, function() {
$scope.status = 'You cancelled the dialog.';
});
};
을 그리고 이것은 대화 상자에서 버튼에 대한 대화 컨트롤러 작동하지 않습니다 :
angular
.module('trax')
.controller('MenuDialogController', MenuDialogController);
function MenuDialogController() {
var vm = this;
vm.close = function close(){
alert('close clicked');
}
vm.ok = function ok(){
alert('ok clicked');
}
}
그리고 이것은 dia의 html 코드입니다. logController :
<md-dialog aria-label="User Menu">
<form ng-cloak>
<md-toolbar>
<div class="md-toolbar-tools">
<h2>User Menu</h2>
<span flex></span>
<md-button class="md-icon-button" ng-click="vm.close($event)">
<md-icon md-font-set="material-icons">close</md-icon>
</md-button>
</div>
</md-toolbar>
<md-dialog-content>
<div class="md-dialog-content">
<h2>Dialog Title</h2>
<p>Dialog Text....</p>
<p ng-click="vm.test($event)">test</p>
</div>
</md-dialog-content>
<md-dialog-actions layout="row">
<md-button href="http://en.wikipedia.org/wiki/Mango" target="_blank" md-autofocus>
More on Wikipedia
</md-button>
<span flex></span>
<md-button ng-click="vm.close($event)">
cancel
</md-button>
<md-button ng-click="vm.ok($event)">
ok
</md-button>
</md-dialog-actions>
</form>
</md-dialog>
ng-clicks가 작동하지 않습니다!
나에게 어떤 힌트가 있습니까?
가 대신 코드 조각으로 이러한 파일을 추가 할 수
로 직접 메소드를 선언입니까? 다른 사람들이 코드를보기 위해 특정 URL로 이동해야하는 대신 도움이 될 것입니다. 또한 [tag : angle-material] 태그 대신 [tag : angularjs-material] 태그를 사용하십시오. – Edric$mdDialog.show
도우미 메서드에controllerAs: "vm"
를 선언 동일$scope
plunker에서 데모 프로젝트를 만들 수 있습니까? – Vishal
안녕하세요, 귀하의 routeConfiguration을 보여 주실 수 있습니까? 당신이 vm'이'MenuDialogController'의 범위에 존재하지 않는'당신의 NG-클릭이'vm'라는 뭔가 바인더 제본,하지만 때문에 controllerAs'전달하지 않았기 때문에 나는이 의심 –