在结构指令内部获取元素绑定

时间:2019-01-05 23:32:57

标签: angular angular-directive

我有一个结构指令,如果填充选择选项的数组只有一项,则该结构指令会将 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];
  }
}

如果有其他方法,请给我一些指导 谢谢您的宝贵时间。

1 个答案:

答案 0 :(得分:0)

还有另一种选择:您可以创建一个将列表作为输入并使用* ngIf或* ngSwitch呈现选择或标签的组件。