Я использую Require.js в сочетании с Angular.js.
Некоторым контроллерам нужны огромные внешние зависимости, которые другим не нужны, например FirstController
требует Angular UI Codemirror. Это дополнительно 135 кб, по крайней мере:
require([
"angular",
"angular.ui.codemirror" // requires codemirror itself
], function(angular) {
angular.module("app", [ ..., "ui.codemirror" ]).controller("FirstController", [ ... ]);
});
Я не хочу включать директиву и Codemirror lib каждый раз, когда моя страница загружается, чтобы сделать Angular счастливым.
Вот почему я сейчас загружаю контроллер только в том случае, когда маршрут попал, как то, что сделано здесь.
Однако, когда мне нужно что-то вроде
define([
"app",
"angular.ui.codemirror"
], function(app) {
// ui-codemirror directive MUST be available to the view of this controller as of now
app.lazy.controller("FirstController", [
"$scope",
function($scope) {
// ...
}
]);
});
Как я могу сказать Angular для ввода модуля ui.codemirror
(или любого другого модуля) в модуле приложения?
Мне все равно, если это хакерский способ выполнить это, если только он не требует изменения кода внешних зависимостей.
Если это полезно: Я запускаю Angular 1.2.0.