[英]Angular2: What does paired selector do in @Directive
我对角2的@directive有疑问
1-如果选择器必须像这样:
selector: '[validateEqual][formControlName],[validateEqual][formControl]
和validateEqual是必须在这样的构造函数中
constructor( @Attribute('validateEqual') public validateEqual: string,
@Attribute('reverse') public reverse: string) {
}
这也意味着什么@Attribute
同样在提供者和useExisting中是否有multi = true
选择器:这意味着指令匹配具有属性validateEqual
以及formControlName
或formControl
之一的formControl
@Attribute
注入静态属性的值。 通常,使用@Input()
将属性读入指令。 @Input()
还支持绑定,当绑定到属性的值(或属性更改)时,输入会更新。 @Input()
值在ngOnInit()
或ngOnChanges()
中可用,而使用@Attribute()
注入的值在构造函数中可用,但是如果以后更改,则不会更新。
使用以下代码, @Attribute('validateEqual') would set
public validateEqual @Attribute('validateEqual') would set
to
foo`。
<div validateEqual="foo" formControlName="bar">
<!-- this doesn't work with `@Attribute('validateEqual')`
because the attribute value is not static -->
<div [validateEqual]="foo" formControlName="bar">
multi: true
表示一个提供者令牌提供了一组元素。 例如,路由器支持的所有指令routerLink
, router-outlet
由ROUTER_DIRECTIVES
提供。 ROUTER_DIRECTIVES
注册了新的提供程序,则它将覆盖以前注册的指令。 如果multi: true
(上注册的第一和 tjhe新提供商)设置,新指令将被添加到先前注册的指令,而不是压倒一切。 ROUTER_DIRECTIVES
( constructor(@Inject(ROUTER_DIRECTIVES) directives) {}
)时,将注入一系列指令实例。 注入ROUTER_DIRECTIVES
通常没有任何意义。 我将其用作示例,因为它是multi: true
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.