我正在使用$ dialog指令在我的应用程序中显示一个对话框。该对话框从另一个指令打开:
angular.module('axa.directDebit.directives').directive("mandateHistoryDetail", ['$dialog', function($dialog) {
return {
restrict: 'E',
template: '<a class="btn btn-small" ng-click="openDialog()">Détail</a>',
scope: {
model: '='
},
link: function (scope, element, attrs) {
scope.openDialog = function(){
var d = $dialog.dialog({
backdrop: true,
keyboard: true,
backdropClick: true,
dialogFade: true,
templateUrl: 'app/directDebit/views/mandates.detail.history.detail.html',
controller: 'mandates.detail.history.detail.ctrl',
resolve: {
data: function () {
return scope.model;
}
}
});
d.open();
}
},
controller: 'mandates.detail.history.detail.ctrl'
}
}]);
我遇到的问题是,从对话框的控制器,我想访问调用指令的范围。特别是上面代码中的'model'属性。
我尝试过使用resolve,但是从对话框控制器我不知道如何获取数据。
知道我应该改变什么吗?
答案 0 :(得分:1)
在对话框控制器中,您应该将其添加为依赖项。
你称之为data
所以它应该是 -
angular.module('yourModule').controller('mandates.detail.history.detail.ctrl',
function($scope, data){
...
});
正如旁注 - 我将提取打开$对话框到外部视图控制器而不是指令内部的行为,因为它看起来像我的应用程序逻辑,指令应该希望可以重用。