如何在控制器和$ mdDialog(角度材质)之间共享作用域? 我使用“控制器为”语法,我需要使用我的控制器的功能到$ mdDialog中,因为它关闭时,我将需要一些数据。 在这段代码中,我需要在$ mdDialog中调用“myFunction”。 发生,如果我有一个对象(self.obj),我需要它到'myFunction'中,当$ mdDialog调用'myFunction'时,该对象不存在于作用域中。
angular.module('myApp')
.controller('myController', myController);
myController.$inject = ['$mdDialog'];
function myController($mdDialog) {
var self = this;
self.obj = {'firstName:'hello','lastName':'world'}
self.myFunction = function() {console.log(JSON.stringfy(self.obj))};
self.showDialog = function(){
$mdDialog.show({
controller: function ctrl() {},
controllerAs: 'ctrl',
templateUrl: 'views/modal_templates/dialog01.template.html',
parent: angular.element(document.body),
targetEvent: ev,
clickOutsideToClose: true
})
}
};
感谢觉醒字节,我已经编辑我的问题,以更好地解释。我的问题是我需要'myFunction'中的对象,并且我会在模态模板上的一个md按钮中更新这个对象。 –
更新了答案。你需要使用bind()方法来锁定上下文到自我 –
谢谢,它解决了我的问题。 –