1.Ursache
Ich habe an Winform gearbeitet und hatte das Glück, ein Projekt von einem Master zu übernehmen, der viele Open-Source-Frameworks wie node.js, Express, AngularJS usw. integriert, und es schnell in die Regale zu stellen. So habe ich gelernt, Code aus der Vergangenheit zu organisieren und umzugestalten
2. FrageIn bestimmten Umgebungen ist es notwendig, die modale Box von BootStrap zu verwenden. Lernen wir von Win? . Natürlich habe ich darüber nachgedacht, die modale Box boostStrp in eine universelle Sache zu integrieren und sie überall aufzurufen. . .
Die Dialogdatei wird also mit Patial referenziert, und das Dialogfeld selbst verwendet anglurJS für die serverbezogene Kommunikation.
Später habe ich herausgefunden, dass es gut funktioniert, wenn nur eines verwendet wird. Wenn es mehrmals referenziert wird (aufrufen verschiedener Daten), funktioniert nur eines. .
3. Analyse
Nachdem ich einige Informationen überprüft hatte, wurde mir klar, dass der Aufruf von „angular.bootstrap“ nur einmal auf der Seite ausgeführt werden kann. Wenn er mehrmals ausgeführt wird, ist er nicht sinnvoll. Außerdem habe ich zuvor alle „angular.module“ in jeweils separate JS-Dateien geschrieben Sobald eine JS-Datei schließlich angle.bootstrap aufruft, schlägt sie natürlich fehl
4. Ich freue mich darauf
Ich möchte also einen Lösungsmechanismus haben, der es mir ermöglicht, nach Belieben verschiedene Dateien teilweise zur Seite hinzuzufügen, und die js-Dateien werden nicht wiederholt referenziert, und AngulurJS kann auch perfekt ausgeführt werden
5.Lösung
Liebe Freunde – diese Methode ist zwar etwas eklig, aber absolut direkt und effektiv
Die Idee besteht darin, alle AngularJS-Module dynamisch in einem globalen Array zu verwalten und sie dann dynamisch zu laden
Nicht mehr reden, einfach den Code posten
Verweisen Sie auf die Datei angulurinit.js am Kopf der Frame-Seite (Layout...), der Code lautet wie folgt:
Array.prototype.indexOf = function (val) { for( var i = 0; i < this.length; i++) { if(this[i] == val) return i; } return - 1; }; var jsModules = new Array(); function Confirm(val){ if (jsModules.indexOf(val) > -1) return; else jsModules.push(val); };