我有一个指令决定是否必须输入,屏蔽等...我遇到了一个需要添加新指令的情况:基本上这个新指令将掩码功能添加到输入中。 / p>
<input type="text" formInput [rules]="rules" [(ngModel)]="value" />
这是formInput指令:
export class DefaultFormInputDirective {
@Input() private rules;
private el: ElementRef;
constructor(el: ElementRef) {
this.el = el;
}
ngOnInit() {
this.defineRules();
}
defineRules() {
if(this.rules == undefined) {
return;
}
if(this.rules.indexOf('required') != -1) {
this.el.nativeElement.required = true;
}
if(this.rules.indexOf('numeric') != -1) {
// Here is where I need to add currencyMask directive
}
}
}
答案 0 :(得分:2)
不支持动态添加指令。您只能动态添加/删除组件。
答案 1 :(得分:0)
在大多数情况下,我建议将属性直接添加到输入中,因为它对我来说似乎更为适用。
无论如何要实现这一目标,您可以创建某种输入抽象组件,接受type
之类的输入,将与ngModel
一起使用(您可以找到有关此here或{的更多信息例如{3}}并且将包含任何属性和指令所需的输入。
所以它最终看起来像这样:
<custom-input type="text" formInput [rules]="rules" [(ngModel)]="value"></custom-input>
然后,您可以隐藏您在此组件中实际输入的逻辑:分配所需的属性,指令以及您需要的许多其他内容。