Я знаю два способа объявить и определить контроллеры в angularjs:AngularJS: как ввести объект в контроллер?
первый путь:
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;
}
}
});
}
}
второй путь:
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;
}
}
});
}
});
Где я использую myObject
:
...
myApp.controller('myDialogController', function($uibModalInstance, myObject){
console.log(myObject);
}
...
это код UI Bootstrap Modal Dialog, а объект objec t, возвращаемое с resolve
- это данные, которые необходимо передать в область диалога.
Но проблема возникает:
1-й способ:
не может быть разрешено AngularJS, потому что он не может найти определение MyObject в myDialogController
.
2-й способ:
значение печатается в журнале: 'не определено'.
Является ли способ объявить и определить контроллер неправильно? (Другие части кода контроллера работают нормально), или это так, как myObject
неправильно передан контроллеру (код для использования контроллера - от AngularJS Пример кода пользовательского интерфейса Bootstrap: «https://angular-ui.github.io/bootstrap/»).
Ошибка, которую я делаю, может показаться глупым, но для меня это важно, спасибо, что выложили ее!
Где вы имеете 'resolve'? – Joy
@Joy, в https://angular-ui.github.io/bootstrap/, Modal part, он говорит: resolve (Тип: Object) - члены, которые будут разрешены и переданы контроллеру в качестве локальных; это эквивалентно свойству разрешения в маршрутизаторе. – Al2O3
Я бы предложил сделать его живым на JSFiddle/Plunker/Pen – Joy