AngularJS - lädt dynamisches Template HTML innerhalb der Direktive

7

Ich habe eine Direktive, die Inhalt von einer externen HTML-Datei lädt. In diese Anweisung werden einige Bereichsdaten übergeben, die beim Rendern dieses HTML-Fragments verwendet werden. z.B.

<div class="{{cls}}" data-obj="{{obj}}" data-id="{{id}}">

<!-- remainder of content here -->

</div>

Was ich in dieser Direktive tun möchte, ist das Laden eines weiteren partiellen HTML-Codes basierend auf den ursprünglichen Scope-Daten, die in die Direktive übergeben wurden. Ich kann das anscheinend nicht zur Arbeit bringen, aber es sollte etwas in Richtung des Folgenden sein:

<div class="{{cls}}" data-obj="{{obj}}" data-id="{{id}}">

<!-- remainder of content here -->

<div ng-include="partials/{{obj}}.html></div>

</div>

Damit wird die Datei nicht eingeschlossen, aber ich bekomme auch keine Fehler. Kann mir jemand hier helfen?

NB : Ich habe das , was ein ähnliches Problem ist, hat mir aber nicht geholfen.

UPDATE - In Chrome-Entwicklungstools ist mir aufgefallen, dass die URL wie erwartet aufgelöst wird, der Dateiinhalt jedoch nicht enthalten ist. Ich dachte von den Dokumenten, dass ng-include das angeforderte Fragment geladen und kompiliert hat, also habe ich erwartet, dass das funktioniert.

    
jwest 30.01.2013, 15:41
quelle

2 Antworten

17

Am Ende eine Lösung gefunden, indem Sie Folgendes in der Direktive deklarieren:

%Vor%

und die folgenden in der Anweisung Controller:

%Vor%

Funktioniert perfekt jetzt!

    
jwest 31.01.2013 09:03
quelle
1

Im Kommentar zum Kommentar von Shane Gadsby: Es ist nicht <div ng-include src="'partials/'+{{obj}}+'.html'"></div> , aber <div ng-include src="'partials/'+obj+'.html'"></div> . Ihr Kommentar erklärt, warum 'das ist, was Sie aus Objektliteralen in eine Zeichenfolge erzwingen müssen , sodass alles, was nicht in Anführungszeichen steht, vom Compiler als ein Bereichsobjekt behandelt wird.

    
kinablej 29.08.2014 17:29
quelle

Tags und Links