正如所料,在Angular 2中,我可以創建組件,如果我在模板中使用它們,它們將呈現。在此代碼,「文本」是另一個部件的選擇和它的作品如預期,如果我通過一些字符串轉換成[值]:如何從Angular 2中的數據渲染靜態Angular組件?
@Component({
selector: 'my-app',
template: `
<div class="main">
<text [value]="testModel.data.value"></text>
</div>
`
})
export class AppComponent {
name = 'Angular Example';
testModel = {
data: {
value: `Regular string text works fine.`
}
}
}
但我需要的是字符串的HTML數據傳遞到一個組件而且數據還可以包含角度成分,更多的東西是這樣的:
@Component({
selector: 'my-app',
template: `
<div class="main">
<text [value]="testModel.data.value"></text>
</div>
`
})
export class AppComponent {
name = 'Angular Example';
testModel = {
data: {
value: `<b>Some</b>
text value to
<inner-component>
this component gets ignored when text is rendered
</inner-component>
render
`
}
}
}
我看到其他的答案中動態生成組件,但我不需要的是,我已經只是靜態的預先定義的組件創建可能存在於我的數據字符串中。
這裏是文本組件:
import { Component, Input, ViewChild } from '@angular/core';
@Component({
selector: 'text',
template: `
<div >
<div [innerHtml]="value">loading...</div>
</div>
`
})
export class TextComponent {
@Input() value: string;
}
理想我傳遞字符串會任何HTML渲染以及呈現的任何角度。以下是我的意思是在角1:https://plnkr.co/edit/FacA3AwOqJA2QARK28c8?p=preview
編輯:不是重複
我沒有看到這個普拉克是如何回答:http://plnkr.co/edit/wh4VJG?p=preview
是否有一個理由,爲什麼你不希望將其添加爲一個孩子零件? – Erevald
我打開任何方式來做到這一點,只要它可以在我的html字符串中找到任何地方,甚至不止一次.. – jssayin
你應該這樣做http://plnkr.co/edit/wh4VJG?p=preview – Milad