2017-02-16 8 views
0

Ich hole einen Teil der Seite von einem Dienst ab. Wie kann ich erreichen, dass der eckige Ausdruck oder die Router-Mitarbeiter als dynamische Inhalte arbeiten?Dynamische eckige 2 Ausdrücke binden an Ansicht

Controller.ts

variable = 'some text'; 
dynamicContent =' 
    {{variable}} 
    Or 
    <a [routerLink]="contact"]></a>'; 

View.html

<div> 
    {{dynamicContent}}//plain text 
    <div [innerHtml]="dynamicContent"></div> //html without angular expressions 
</div> 

So ist innerhtml schließen. Es kann HTML erstellen, kann aber keine eckigen 2 Ausdrücke verstehen. Ich habe ein ng-dynamisches Modul gefunden, aber es versteht auch nur HTML. Die beste Lösung atm ist html outlet, die ich auf einigen Stapel Fragen gefunden habe. Aber es unterstützt nicht AOT ...

+0

Überprüfen Sie diese http://stackoverflow.com/questions/34784778/equivalent-of-compile-in-ang ular-2 – BotanMan

Antwort

0

Angular verarbeitet dynamischen Inhalt nie, außer das Entfernen einiger sicherheitsrelevanter Sachen wenn nicht sanitizized. Winkelbindungen und -komponenten werden nur verarbeitet, wenn sie statisch zu einer Komponentenvorlage hinzugefügt werden.

Sie eine Komponente dynamisch erstellen können, wo Sie den dynamischen Inhalt in ihnen Komponenten Vorlage auch

See setzen Equivalent of $compile in Angular 2

+0

scheint es, dass es eine Lösung sein kann. Die einzige Frage ist, wie es AOT unterstützt. Ich werde es überprüfen – user2771738

+0

Ich weiß es nicht. Das letzte, was ich hörte, war, dass es nicht mit AoT funktioniert, wenn die browserdynamische Plattform importiert wird, die hier benötigt wird. –

0

Sie sollten es so schreiben:

dynamicContent = this.variable + ' Or <a href="#/contact"></a>'; 

Hier ist ein Plunker: https://plnkr.co/edit/EqJRUs3mGKwjnXzbuwAo?p=preview

+0

in Ihrem Plunker Sie verwenden reines HTML Go to Site das funktioniert gut, wie ich schon sagte. Problem ist, wenn ich versuche, eckige 2-Wege-Links zu haben: user2771738

+0

noch reines HTML in Variable: dynamicContent = '' + this.variable + ' CrisisCenter'; In meinem Fall verwende ich html 5 Push-Status. Meine Links verwenden keine # Notation. Dies war wie Workaround ein kleines Bit. dynamischer Inhalt muss in Winkelnotation wie: platziert werden – user2771738

Verwandte Themen