Я использую meteor + angular. Мое намерение состоит в том, чтобы добавить больше зависимостей после начальной загрузки приложения (это потому, что пакет является тем, который обрабатывает загрузку в начале, и у меня нет большого контроля над ним). Теперь, делая это, я также хотел бы обеспечить базовую структуру кода, в которой, например, я бы скомпилировал все контроллеры в одном модуле.
Вот основная идея:
'use strict';
angular.module('app.controllers', [])
.controller('MainCtrl', function() {
// ...
})
.controller('SubCtrl', function() {
// ...
})
.controller('AnotherCtrl', function() {
// ...
});
Затем включите это в основной модуль как зависимость:
angular.module('app', [
'app.filters',
'app.services',
'app.directives',
'app.controllers' // Here
]);
После некоторых исследований я обнаружил, что то, что я пытаюсь сделать (добавление зависимостей после загрузки), на самом деле является частью запроса функции команде angular. Поэтому мой параметр использует, например, функцию $controllerProvider
и register()
:
Meteor.config(function($controllerProvider) {
$controllerProvider.register('MainCtrl', function($scope) {
// ...
});
});
Meteor.config(function($controllerProvider) {
$controllerProvider.register('SubCtrl', function($scope) {
// ...
});
});
Meteor.config(function($controllerProvider) {
$controllerProvider.register('AnotherCtrl', function($scope) {
// ...
});
});
Это работает, хотя и не настолько элегантно. Вопросы:
- Какой более элегантный способ сделать часть
config
иregister
? - Есть ли способ зарегистрировать модуль?