Der richtige Weg, um eine Winkelreglerabhängigkeit in ein angular.ui-Modal zu injizieren
folgende Winkel.ui Modal Beispiel zeigt die modalInstance
Aufruf einer ModalIntanceCtrl
welches später erstellt als eine Funktion:
var ModalDemoCtrl = function ($scope, $modal, $log) {
$scope.items = ['item1', 'item2', 'item3'];
$scope.open = function () {
var modalInstance = $modal.open({
templateUrl: 'myModalContent.html',
controller: ModalInstanceCtrl,
resolve: {
items: function () {
return $scope.items;
}
}
});
modalInstance.result.then(function (selectedItem) {
$scope.selected = selectedItem;
}, function () {
$log.info('Modal dismissed at: ' + new Date());
});
};
};
var ModalInstanceCtrl = function ($scope, $modalInstance, items) {
$scope.items = items;
$scope.selected = {
item: $scope.items[0]
};
$scope.ok = function () {
$modalInstance.close($scope.selected.item);
};
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
};
};
Ich habe 2 Fragen/Probleme:
-
die docs empfehlen, eine Steuerung in einer anderen Art und Weise (durch Verkleinerung Ausgaben) zum Beispiel:
myApp.controller('GreetingCtrl', ['$scope', function($scope) {
$scope.greeting = 'Hola!';
}]);
Aber wenn ich den controller so aus, wie könnte ich es Injizieren in die modalInstance?
- Den controller nenne ich hier nicht ein Modal-Instanz-controller aber meine Globale
loginCtrl
ist das ein problem? sollte ich eine Unterklasse irgendwie die loginCtrl oder rufen es aus dem ModalInstanceCtrl? und wenn ja - wie genau?
Bin ich froh, für die Führung und die clarfication über diese.
Danke!
InformationsquelleAutor der Frage alonisser | 2013-10-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Frage ist nicht ganz klar, aber wenn Sie erklären controller mit der Modul-API, dann können Sie den controller, um den modal-service als string
controller: 'ModalInstanceCtrl',
Dasselbe kann man für
loginCtrl
wenn Sie verwenden möchten, die in der modal-service.InformationsquelleAutor der Antwort Chandermani
Erstellt habe ich dieses plunker für diejenigen wie mich, die sich gerne ein Beispiel sehen. Es zeigt, wie eine modale ohne Verschmutzung der globalen namespace. Hoffentlich ist es hilfreich.
Bearbeitet, die code enthalten Beispiel als pro bummi's Kommentar unten
index.html
app.js
InformationsquelleAutor der Antwort Mikt25
Hatte ein ähnliches Problem und erklärte die modal-controller, ohne die it um das Modul, so wie dieses:
Ohne andere änderungen erforderlich, diese syntax funktioniert bei Verkleinerung als auch.
InformationsquelleAutor der Antwort Mark Meyerovich
Den einfachen Weg, dies zu tun ist, verwenden Sie $injizieren:
Ändern Sie die controller-Methode, um eine benannte Funktion :
Ich geschrieben habe, einen blog-Artikel zu diesem Thema, und gehört, wie zum schreiben von tests für die Richtlinien, die $injizieren:
übergang-eckig-2-0-Teil-2
InformationsquelleAutor der Antwort Jesse Sanders