Добре, така че имам следния ъглов изглед:
<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 за всички тях, така че всичко да работи както се очаква, когато бъде минимизирано?
Благодаря