Ich möchte eine Komponente myApp
erstellen, die HTML aus einer Eigenschaft auf dem Controller in seiner Vorlage einbetten wird. Einige dieser HTML-Elemente können jedoch andere Komponentenselektoren enthalten.Wie Angular2 zu binden Komponente in innerHTML
import {InfoComponent} from ...
@Component({
selector: 'myApp',
template: `<div [innerHTML]='hData'></div>
<myInfo></myInfo>`,
directives: [InfoComponent]
})
export class AppComponent {
hData = "<myInfo></myInfo>";
}
@Component({
selector: 'myInfo',
template: "<b>This is a test</b>"
})
export class InfoComponent {
}
In diesem Beispiel würde ich erwarten, This is a test
angezeigt zweimal zu sehen. Es scheint jedoch nicht, dass die Angular2-Engine die Tatsache aufgreift, dass der Selektor der Komponente injiziert wurde, so dass die Vorlage nie für den Selektor <myInfo></myInfo>
generiert wird, der über die Bindung hinzugefügt wird.
Sie können eine demo here sehen.
Gibt es eine Möglichkeit, Angular2 zu veranlassen, den Selektor auf dieselbe Weise zu analysieren, wie mit dem Selektor, der explizit in der Vorlage hinzugefügt wird?
Ich denke, der DynamicComponentLoader ist genau das, wonach ich suche. Vielen Dank. – RHarris
Aber wenn es nicht eine Komponente ist, die Sie laden möchten, wie funktioniert es? Wenn es nur eine einfache HTML-Zeichenfolge ist? – Chrillewoodz
Dann wickeln Sie es in eine Komponente ein. Wenn das nicht möglich ist http://stackoverflow.com/questions/36008476/how-to-realize-website-with-hunderte-von-seiten-in-angular2 könnte hilfreich sein –