Da Skript nicht in Templates geladen werden kann, weil Angulars jQLite nicht dafür geschrieben wurde, entschied ich, jQuery-Bibliothek vor Angular hinzuzufügen da es nach jQuery-Existenz und voila! sucht, funktioniert es. Aber die Tatsache, dass ich hier eine Frage stelle, bedeutet, dass es ein "Aber" gibt, also wird das Skript nicht ausgeführt, bevor der Inhalt geladen wird. Natürlich habe ich einen kleinen Trick mit Routen gemacht.angular - Anfügen und Ausführen von Skripten innerhalb von ng-view, bevor der Template-Inhalt angehängt wird
Im Modul Config Abschnitt, habe ich dies:
$routeProvider
.when("Business/:Context/:View?", {
templateUrl: function (url) {
return "Contexts/" + url.Context + "/" + (url.View || url.Context) + ".html";
}
});
Dann lassen Sie uns sagen, dass wir die Strecke zu "#/Geschäft/Test" er am meisten suchen Sie eine Datei mit dem Namen Test.html auf „set/Kontext/Test ", richtig eh! Nehmen wir an, der Inhalt von Test.html ist dies.
<script>
(function(ng){
console.log(ng)
ng.module('MyApp').controller('TestController', function ($scope, $route, $routeParams, $location, $http, $mdDialog) {
$scope.name = "TestController";
$scope.params = $routeParams;
$scope.name = "John";
});
})(angular)
</script>
<div ng-controller="TestController">
Hola {{ name }}
</div>
Und schließlich die eigentliche Frage: Warum passiert das? Es ist wie die nach ausgeführt wird, oder ich weiß nicht, weil, sucht die Konsole:
Angular existiert, aber der Controller nicht in der Zeit hinzugefügt wird. Mache ich falsch? Ist dieses Verhalten erlaubt? Kann mich jemand auf dieser Reise führen?
Art von ?? !! es war nur eine Idee. Ich wollte nur eine einfache Möglichkeit zum Laden von Controller und Ansicht erstellen, auch wenn ich dachte, eine Möglichkeit zu finden, das Controller-Skript innerhalb der in $ when.resolve zu laden, ist es möglich ??. Die Antwort auf Ihre letzte Frage ist, dass ich viele Skripte in der HTML-Wurzel haben würde, weil es zu viele Controller hat, und ich würde sie gerne laden, wenn App sie braucht, nicht zum ersten Mal. –
@PedroMora So schrieb ich auch, dass Sie 'requirejs' oder eine andere Bibliothek verwenden können - Überprüfen Sie [ocLazyLoad] (https://oclazyload.readme.io/) es ist genau für Ihren Fall, wenn Sie viele Controller und Sie haben (zu Recht) möchte den Controller laden, wenn Sie es brauchen. Es funktioniert gut in meiner App, also empfehle ich Ihnen, es zu versuchen –
Lesen Sie diese [tutorial] (https: //oclazyload.readme.io/docs/with-your-router) zur Integration mit [ui-router] (https://github.com/angular-ui/ui-router) –