我现在正从Angular1迁移到Angular2。在我的应用程序中,我在自定义指令部分遇到了一个令人困惑的问题。演示代码如下:
import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core'
@Directive({
selector: '[myUnless]'
})
export class UnlessDirective {
@Input('myUnless')
set condition(newCondition:boolean) {
if {!newCondition} {
this.viewContainer.createEmbeddedView(this.templateRef);
} else {
this.viewContainer.clear();
}
}
constructor(
private templateRef: TemplateRef <any>,
private viewContainer: ViewContainerRef
) {}
}
<p *myUnless="boolValue"></p>
这是结构指令,与NgIf相反。
我无法理解的是@Input
绑定部分。一般来说,格式如下:
@Input('myUnless')
condition
所以condition
是可变的。这是可以理解的。
在上述情况下,根据我的搜索,set
是条件的方法。不完全明白。怎么样?