是否可以在组件内部生成“动态”html内容,形成对象,如下所示:
let fields = [
{
'field': 'name',
'type': 'text',
'attrs': [
{
'class': 'name some-class',
'fxFlex': '70px',
'some-attr': 'some value',
'[ngClass]': '{"fa-check-square": isOk(item._id)'
}
]
},
{
'field': 'age',
'type': 'number',
'attrs': [
{
'class': 'age some-class',
'fxFlex': '70px',
'[ngClass]': '{"fa-check-square": isOk(item._id)'
}
]
}
]
在html中:
<app-fields [items]="fields"></app-fields>
产生什么:
<div class="name some-class" fxFlex="70px" [ngClass]="{'fa-check-square': isOk(item._id) some-attr="some value">
<label for="inp_name">Name:</label>
<input id="inp_name" type="text" formControlName="name">
</div>
<div class="age some-class" fxFlex="70px" [ngClass]="{'fa-check-square': isOk(item._id)>
<label for="inp_age">Age:</label>
<input id="inp_age" type="text" formControlName="age">
</div>
我对ng-templates很好,问题是,如何传递函数的引用,以及如何将未预定义的属性添加到dom元素。
也许对象结构不是最好的,但它不是目标。