Ich kenne zwei Wege-Controller in AngularJS zu erklären und zu definieren:AngularJS: Wie injiziere ich ein Objekt in den Controller?
1. Weg:
myApp.controller('myController', ['$scope', '$uibModal', myController]);
function myController($scope, $uibModal, myObject){
$scope.params = {};
$scope.open = function(){
$uibModal.open({
templateUrl:'my_dialig.html',
controller:myDialogController,
resolve:{
myObject:function(){
return $scope.params;
}
}
});
}
}
2. Art und Weise:
myApp.controller('myController', function($scope, $uibModal){
$scope.params = {};
$scope.open = function(){
$uibModal.open({
templateUrl:'my_dialog.html',
controller:myDialogController,
resolve:{
myObject:function(){
return $scope.params;
}
}
});
}
});
Wo ich myObject
:
...
myApp.controller('myDialogController', function($uibModalInstance, myObject){
console.log(myObject);
}
...
Dies ist der UI Bootstrap Modal Dialog Code und das Objekt t von resolve
zurückgegeben wird, sind die Daten, die an den Dialogbereich übergeben werden sollen.
Aber das Problem kommt:
der erste Weg:
nicht durch AngularJS erlaubt werden, weil es nicht die Definition von myObject in myDialogController
finden.
der zweite Weg:
der Wert im Protokoll ausgedruckt: 'undefined'.
Ist die Art, wie ich den Controller deklarieren und definieren falsch (die anderen Teile des Controller-Code funktionieren nur ok), oder ist die Art und Weise myObject
Controller falsch übergeben? (Der Code zur Verwendung des Controllers ist von AngularJS UI Bootstrap-Beispielcode: "https://angular-ui.github.io/bootstrap/").
Der Fehler, den ich mache, mag albern vorkommen, aber es ist mir wichtig, danke, dass ich es herausgefunden habe!
Wo Sie die 'resolve' haben? – Joy
@Joy, in https://angular-ui.github.io/bootstrap/, Modalteil, heißt es: resolve (Type: Object) - Mitglieder, die aufgelöst und als Locals an den Controller übergeben werden; Dies entspricht der Eigenschaft resolve im Router. – Al2O3
Ich würde vorschlagen, es lebendig zu machen auf JSFiddle/Plunker/Pen – Joy