2016-09-05 3 views
7

Gibt es eine Möglichkeit, Vorlagen in angular2 dynamisch zu laden? In angular1 habe ich ng-include verwendet, um verschiedene html Vorlagen in der Hauptansicht des Controllers zu laden. Ich weiß, dass angular2 kann nur 1 templateUrl und googlen ng-include in angular2 und kann keine Referenz finden.Angular2 dynamische Vorlage oder ng-include

+1

Es gibt ['ngTemplateOutlet'] (https://angular.io/docs/ts/latest/api/common/index/NgTemplateOutlet-directive.html), aber das klingt nicht genau nach dem, was Sie suchen . Eine andere Möglichkeit besteht darin, Komponenten zur Laufzeit zu kompilieren. –

+0

können Sie diese Lösung versuchen: http://StackOverflow.com/Questions/33749994/dynamic-Template-in-Templatur-in-angular2?answertab=votes#Tab-Top –

Antwort

1

Warum Sie ng-einschließen, wenn Sie machen brauchen html als benutzerdefinierte neue Komponente und verwenden Sie sie dank des Selektor-Tags, wo immer Sie es brauchen.

ZB:

@Component({ 
     selector: 'app-my-component', 
     templateUrl: './my-component.component.html' 
    }) 

Also hier die my-component.component.html Datei kann das Markup Sie aufnehmen möchten, müssen oder sonst überall zeigen. und der Selektor-Tag-Wert <app-my-component></app-my-component> kann innerhalb Ihrer Anwendung verwendet werden Markup-HTML-Dateien (Sie können es als Ihre alltäglichen HTML-Tags denken - aber sehr individuell in der Natur und interpretiert von der eckigen Rahmen zuerst aka benutzerdefinierte Tags aber mit eckigen gebaut).

+0

diese Sache, die wir versucht, aber Konsolenfehler kommen, dass Tag nicht richtig beendet. weil wir html Start-Tag in header.html und End-Tag in footer.html –

+0

dann wie in Ihrem index.html haben Sie etwas wie <.... Ihre eigene Fußzeile>

+0

Diese Idee ist gut. Ich habe versucht, indem ich zwei separate Komponente für Kopf- und Fußzeile gemacht und das Tag aus der Fußzeile HTML entfernt. Es funktioniert gut, aber es funktioniert möglicherweise nicht für IE-Browser. –