Closed dftpnd closed 10 years ago
Да, вы моежете оформить controller просто как функцию:
define(function(require({
return ['$scope', function($scope)(){
}];
});
тогда вы уже сами добавляете его в любой модуль
var controller = require('controller!module_name:controller_name');
var module = require('module!another_module_name');
module.controller('controller.name', controller);
Но в примерах controller добавляется сразу в модуль.
define(function(require({
var module = require('module!@'); // require current module
module.controller('controller.name', ['$scope', function($scope)(){
})
]);
});
А это вообще нормально? Тоесть данный подход?
Зависит от многих факторов - от архитектуры проекта, от самой задачи и так далее. В большинсвте случаев вообще не важно, в каком модуле будет конроллер, но это тоже не верно. Но вообще - это не верно в модуль добавлять конроллеры из другого модуля. Модуль должен быть не зависим от других модулей.
Вы можете описать задачу, и уже будет более понятно, что ОК а что не ОК :)
На данный момент, я имею: 4 модуля, которые зависят от одного контроллера в первом модуле. Контроллер довольно сильно разросса, и я от него постоянно наследуюсь. Если попробовать применить пример который вы описали, то таким же же образом придется объявлять все сервисы, которые я использую в этом контроллере, что довольно не удобно. Я в тупике
К исходникам есть доступ?
К сожалению исходники закрыты. Наследование происходит таким образом:
<div ng-controller="MainController" > <div ng-controller="NextController"></div> </div>
Наверно я ввел ввас в заблужнени назвав это "наследованием"
Ну так а откуда берется проблема, в каком модуле (в смысле модуле ангулара) a у вас будет контроллер? Он может быть хоть в отдельном модуле. Главное что бы этот модуль был подключен в приложение при бутсрапе ангулара.
Скажите пожалуйста, возможно ли записать в текущий модуль контроллер из другого модуля?