如何在控制器和$ 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()方法來鎖定上下文到自我 –
謝謝,它解決了我的問題。 –