Verwenden Sie Angular nur in der Seite, die über Ajax geladen wird

8
%Vor%

Ich bin wirklich neu in eckigen, also bitte sei sanft!

Die Idee ist also wie oben im Titel angegeben - ich lade meine Seite mit der im Kopfbereich enthaltenen eckigen Bibliothek. Später lade ich Daten (unten) mit ajax (jquery) in den Div-Container.

%Vor%

Ich möchte irgendwie den Winkel initialisieren, der nur in #angular-test Container aktiv sein soll, nachdem die Ajax-Anfrage abgeschlossen ist. Ich nehme an, dass es etwas mit Scope-Objekt zu tun hat, richtig?

Danke!

    
Krabats 03.06.2013, 14:18
quelle

2 Antworten

9

Angular führt die Initialisierung durch (einschließlich der Suche nach ng-app und Vorlagenkompilierung), sobald das DOM das Laden beendet hat (beim DOMContentLoaded-Ereignis). Angular hat keine Möglichkeit zu wissen, dass das DOM geändert wird, und eine ng-app wird später zum DOM hinzugefügt, sobald die AJAX-Antwort empfangen wurde.

Sie können also versuchen, den Bootstrap manuell zu initialisieren, nachdem das DOM wirklich finalisiert wurde (das ist auf Ihrem jquery ajax Callback, nachdem Sie es innerHTML zugewiesen haben). Führen Sie im Rückruf etwa Folgendes aus:

%Vor%

Angenommen, der Inhalt in ajax-content-here bezieht sich auf einige ng-app . Sehen Sie sich den Abschnitt zur manuellen Initialisierung in Ссылка

an     
thesamet 03.06.2013, 19:59
quelle
0
%Vor%

Der ng-app Teil wird angular innerhalb angular-test initialisieren.

    
MaxWillmo 03.06.2013 14:36
quelle