正如所料,在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