我有一个结构指令,如果填充选择选项的数组只有一项,则该结构指令会将 Select 转换为 label 。 该数组可以是对象数组或字符串数组。我想知道是否有可能在指令中获取绑定
<select *convertToText="deltas" >
<option [value]="" [selected]="true"> - Select -</option>
<option *ngFor="let delta of deltas" [value]="delta">
{{delta.type | formatType}}
</option>
</select>
是否可以在指令中获得“ delta.type | formatType”的输出?管道可能是可选的。如果数组为String,则绑定将仅为{{delta}}
这是我的指令的样子
@Input() set convertToText(options: Array<any>) {
if(options.length > 1 ) {
this.viewContainer.createEmbeddedView(this.templateRef);
} else {
this.viewContainer.remove();
let compFactory = this.resolver.resolveComponentFactory(OptionTextComponent);
let component = this.viewContainer.createComponent(compFactory);
component.instance.optionValue = options[0];
}
}
如果有其他方法,请给我一些指导 谢谢您的宝贵时间。
答案 0 :(得分:0)
还有另一种选择:您可以创建一个将列表作为输入并使用* ngIf或* ngSwitch呈现选择或标签的组件。