Modul nur bei Bedarf dynamisch injizieren
Ich verwende Require.js in Kombination mit Angular.js.
Einige Controller benötigen große externe Abhängigkeiten, die andere nicht benötigen, z. B.FirstController
erfordertAngular UI Codemirror. Das sind mindestens weitere 135 KB:
require([
"angular",
"angular.ui.codemirror" // requires codemirror itself
], function(angular) {
angular.module("app", [ ..., "ui.codemirror" ]).controller("FirstController", [ ... ]);
});
Ich möchte nicht jedes Mal, wenn meine Seite geladen wird, die Direktive und die Codemirror-Bibliothek einfügen müssen, um Angular glücklich zu machen.
Deshalb lade ich den Controller gerade erst, wenn die Route erreicht ist.wie was hier gemacht wird.
Wenn ich aber sowas brauche
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) {
// ...
}
]);
});
Wie kann ich Angular sagen, dass er spritzen soll?ui.codemirror
Modul (oder ein anderes Modul) auch im App-Modul?
Es ist mir egal, ob es ein hackiger Weg ist, dies zu erreichen, es sei denn, es geht darum, den Code externer Abhängigkeiten zu ändern.
Wenn es nützlich ist: Ich verwende Angular 1.2.0.