指令选择器不匹配动态(绑定)类名或属性

时间:2016-11-15 18:27:50

标签: angular

我正在cookbook documentation

之后构建动态表单

另外,我有一个带选择器input[type=signature]的指令。

如果我在dynamic-form-question.component.ts

中使用此功能
<input *ngSwitchCase="'signature'"
            [id]="question.attribs.name" 
            [formControlName]="question.attribs.name" 
            type="signature" 
            class="signature" />

我的指令匹配。

但是,如果我使用

<input *ngSwitchDefault
            class="form-control"
            [formControlName]="question.attribs.name"
            [id]="question.attribs.name"
            [ngClass]="question.attribs.class"
            [placeholder]="question.attribs.placeholder"
            [type]="question.attribs.type" />

type.attribute被绑定的地方,没有骰子。

同样我尝试了选择器input.signatureinput.signature, input[type=signature],但如果绑定了类或类型属性,它们也无法工作。

这是否不受支持,是否需要执行其他操作才能获得此功能?

1 个答案:

答案 0 :(得分:1)

指令选择器必须是静态元素名称,属性或类。 他们需要静态添加组件模板。 Angular2不会考虑以任何方式动态添加的所有内容。

我知道的唯一解决方法是在运行时创建组件(使用静态元素名称,属性或类),以便使用它们创建指令和管道 - 如Equivalent of $compile in Angular 2中所述