Ich versuche, einer Seite zwei eckige Apps / Module hinzuzufügen. In den folgenden Geigen sehen Sie, dass immer nur das erste Modul, auf das im HTML-Code verwiesen wird, ordnungsgemäß funktioniert, während das zweite Modul nicht durch Winkel erkannt wird.
In dieser Geige können wir nur die doSearch2
Methode ausführen , während in dieser Geige nur die doSearch
Methode korrekt funktioniert.
Ich suche nach einer Möglichkeit, zwei Winkelmodule korrekt auf einer Seite zu platzieren.
quelle
ng-app="project"
und besagt, dass "damit Module in verschiedenen Teilen der Seite ausgeführt werden können", das ngApp-Dokument jedoch angibt, dass "nur eine Direktive pro HTML-Dokument verwendet werden kann".ng-app
(weil es nicht funktioniert).ng-app
kann nur einmal pro HTML-Dokument verwendet werden. Es ist wirklich nur eine Abkürzung, wenn Sie nur eine App auf der Seite haben, was der Normalfall ist.Ich habe eine alternative Direktive erstellt, die keine
ngApp
Einschränkungen hat. Es heißtngModule
. So würde Ihr Code aussehen, wenn Sie ihn verwenden:Den Quellcode erhalten Sie unter:
http://www.simplygoodcode.com/2014/04/angularjs-getting-around-ngapp-limitations-with-ngmodule/
Es ist im Wesentlichen derselbe Code, der von AngularJS intern ohne Einschränkungen verwendet wird.
quelle
Warum möchten Sie mehrere [ng-app] verwenden? Da Angular mithilfe von Modulen wieder aufgenommen wird, können Sie eine App verwenden, die mehrere Abhängigkeiten verwendet.
Javascript:
HTML:
BEARBEITEN
Beachten Sie, dass Sie, wenn Sie den Controller innerhalb des Controllers verwenden möchten, die ControllerAs-Syntax wie folgt verwenden müssen:
quelle
Sie können mehrere Winkelanwendungen booten, aber:
1) Sie müssen sie manuell booten
2) Sie sollten nicht "document" als Root verwenden, sondern den Knoten, in dem sich die Winkelschnittstelle befindet, um:
Das wäre sicher.
quelle
Das manuelle Bootstrapping beider Module funktioniert. Schau dir das an
Hier ist der Link zum Plunker http://plnkr.co/edit/1SdZ4QpPfuHtdBjTKJIu?p=preview
HINWEIS: In HTML gibt es keine
ng-app
.id
wurde stattdessen verwendet.quelle
Ich habe einen POC für eine Angular-Anwendung erstellt, indem ich mehrere Module und Router-Outlets verwendet habe, um Unter-Apps in einer App mit nur einer Seite zu verschachteln. Den Quellcode erhalten Sie unter: https://github.com/AhmedBahet/ng-sub-apps
Hoffe das wird helfen
quelle