Moduł wstrzykiwania dynamicznie, tylko w razie potrzeby
Używam Require.js w połączeniu z Angular.js.
Niektóre kontrolery wymagają dużych zewnętrznych zależności, których inni nie potrzebują, na przykład,FirstController
wymagaAngular UI Codemirror. To dodatkowe 135 kb, przynajmniej:
require([
"angular",
"angular.ui.codemirror" // requires codemirror itself
], function(angular) {
angular.module("app", [ ..., "ui.codemirror" ]).controller("FirstController", [ ... ]);
});
Nie chcę dodawać dyrektywy i biblioteki Codemirror za każdym razem, gdy moja strona ładuje się, aby Angular był szczęśliwy.
Dlatego właśnie ładuję kontroler tylko wtedy, gdy trasa zostanie trafiona,jak to, co tutaj zrobiono.
Jednak kiedy potrzebuję czegoś takiego
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) {
// ...
}
]);
});
Jak mogę poinformować Angulara o wstrzyknięciuui.codemirror
moduł (lub jakikolwiek inny moduł) w module aplikacji?
Nie obchodzi mnie, czy jest to hackerski sposób na osiągnięcie tego, chyba że wymaga modyfikacji kodu zewnętrznych zależności.
Jeśli to przydatne: Używam Angular 1.2.0.