Heim  >  Artikel  >  Web-Frontend  >  Unkonventionelle Möglichkeiten zur Behandlung von AngularJS-Modulverwaltungsproblemen_AngularJS

Unkonventionelle Möglichkeiten zur Behandlung von AngularJS-Modulverwaltungsproblemen_AngularJS

WBOY
WBOYOriginal
2016-05-16 16:01:421256Durchsuche

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. Frage

In 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);

};

Ersetzen Sie
in jedem angul.js-Modul

angle.bootstrap(document, [modulename]);


Ersetzen Sie
durch

Bestätigen(Modulname);


Fügen Sie die Datei angulur.js am Ende des Layouts hinzu (Layout-Seite? Ich weiß jedenfalls nicht, wie sie heißt, es ist die öffentliche Frame-Seite).

Code kopieren Der Code lautet wie folgt: (Funktion () {
var app = angle.module('app', jsModules);
Angular.bootstrap(document, ['app']);
})();



Hehe~~ Mir ist schlecht. . . Macht es dich krank?
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er gefällt Ihnen allen.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn