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.
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.
Tags und Links angularjs