Wie kann ich den Bereich zwischen Controller und $ mdDialog (Angular Material) teilen? Ich benutze "Controller As" -Syntax, und ich muss Funktionen meines Controllers in $ mdDialog Ursache verwenden, wenn es geschlossen wird, werde ich einige Daten benötigen. In diesem Code muss ich "myFunction" in $ mdDialog aufrufen. tritt auf, wenn ich ein Objekt (self.obj) habe und ich es in 'myFunction' brauche, wenn $ mdDialog 'myFunction' aufruft, existiert das Objekt nicht in dem Bereich.
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
})
}
};
Dank Awakening Byte, ich habe meine Frage bearbeitet besser zu erklären. Mein Problem ist, dass ich ein Objekt in 'myFunction' brauche, und ich werde dieses Objekt in einer MD-Schaltfläche auf meiner modalen Vorlage aktualisieren. –
aktualisierte die Antwort. Sie müssen bind() -Methode verwenden, um den Kontext zu self zu sperren –
Danke, es hat mein Problem gelöst. –