另外,我有一个带选择器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.signature
和input.signature, input[type=signature]
,但如果绑定了类或类型属性,它们也无法工作。
这是否不受支持,是否需要执行其他操作才能获得此功能?
答案 0 :(得分:1)
指令选择器必须是静态元素名称,属性或类。 他们需要静态添加组件模板。 Angular2不会考虑以任何方式动态添加的所有内容。
我知道的唯一解决方法是在运行时创建组件(使用静态元素名称,属性或类),以便使用它们创建指令和管道 - 如Equivalent of $compile in Angular 2中所述