【发布时间】:2017-12-06 12:49:46
【问题描述】:
我想知道是否可以动态删除 Angular 表达式。 我尝试了以下但没有成功:
我的按钮
<button myDirective [disabled]="someExpression">Clippy</button>
我的指令
@Directive({
selector: '[myDirective]'
})
export class MyDirective {
constructor(private element: ElementRef) {}
ngOnInit() {
this.element.nativeElement.removeAttribute('disabled');
}
}
问题
最初按钮不会被禁用,但一旦someExpression 重新评估,它会将 disabled 属性添加回元素。
为了澄清,我想动态删除一个 Angular 表达式。在上面的例子中它是[disabled]。但这在未来可能具有任何约束力。我希望我的指令推翻现有的绑定。
【问题讨论】:
-
您可以通过将
@Input属性设置为自定义directive来实现这一点并实现这一点 -
您不需要指令来删除 [disable](不适用于 removeAttribute)“someExpression”可以是组件中的布尔变量
-
@Eliseo 不,禁用只是一个例子。我希望我的指令推翻在这种情况下禁用的属性