Предположим, что мы имеем два AngularJS контроллеры в отдельных файлах, которые включены в HTML файл, например:AngularJS: включение модуля между разделенными контроллерами
//controller1.js
"use strict";
var someApp = angular.module('MYAPP');
//var someApp = angular.module('MYAPP',['ngCookies']); <-- Does not work
someApp.controller('Controller1', function($scope) {
$scope.CookieFunction = function(){
//foo
};
});
//controller2.js
"use strict";
var someApp = angular.module('MYAPP',['ngCookies','ui.bootstrap']);
someApp.controller('Controller2', function($scope,$cookies) {
$scope.SomeOtherfunction = function(){
//foo
};
});
//HTML file
<script src="controller1.js"></script>
<script src="controller2.js"></script>
Внутри controller1, я хотел бы выполнить некоторые операции Cookie, поэтому необходимо включить ngCookies. Если я делаю это внутри controller1.js, тогда контроллер2 не будет определен. Я предпочитаю включать модули именно там, где они мне нужны, а не где-то еще. Как я могу достичь этого без «удаления» последующих контроллеров?
EDIT: Если я перехожу ngCookies включение из controller2 в controller1, я получаю сообщение об ошибке (Аргумент «controller2» не является функцией, получил неопределенный)
Вы не можете «стереть последующие контроллеры», если они не имеют то же имя ... что вы имеете в виду?Что делает _ «Если я делаю это внутри controller1.js, тогда контроллер2 становится неопределенным.» Означает? Вам нужно будет уточнить, потому что ваш вопрос чрезвычайно расплывчатый, как есть. – matmo
Я обновил код выше. Это означает, что если я переведу включение ngCookies из контроллера2 в контроллер1 (где я его фактически использую), тогда контроллер2 станет неопределенным !? –