Итак, у меня есть следующий угловой вид:
<div ng-controller="myController">
{{helloWorld}}
<br /><br />
<button type='button' ng-click='showModal();'>Click me</button>
</div>
И следующий JS-код:
var testApp = angular.module('testApp', ['ui.bootstrap']);
var myController = function($scope, $modal){
$scope.helloWorld = 'Hello World';
$scope.showModal = function(){
var modalInstance = $modal.open({
template: '{{something}} <br/> <button type="button" ng-click="updateSomething()">Click me now</button>',
controller: modalController,
resolve: {
helloWorld: function () {
return $scope.helloWorld;
},
}
});
}
}
myController.$inject = ['$scope', '$modal'];
testApp.controller('myController', myController);
var modalController = function($scope, $modalInstance, helloWorld){
$scope.something = 'Yada yada yada';
$scope.updateSomething = function () {
$scope.something = helloWorld;
};
}
JSFiddle находится здесь.
Когда все объединено и минимизировано, myController отлично работает, потому что я создал аннотацию, сообщающую testApp о myController, и назвал testApp< Метод контроллера /strong>.
Однако я застрял на modalController, как правильно подключить его к контейнеру DI Angular?
Я знаю, что у него есть свойство $inject. Я попытался создать аннотацию для modalController так же, как я сделал для myController, а затем поместил helloWorld в этот массив, как показано в этой обновленной скрипте, но я получаю сообщение об ошибке "Неизвестный поставщик".
Итак, мой вопрос: когда некоторые из зависимостей контроллеров предоставляются angular, а другие - через метод разрешения, как вы сообщаете контейнеру DI Angular обо всех из них, чтобы все работало должным образом при минимизации?
Спасибо