簡體   English   中英

Angular2:配對選擇器在@Directive中做什么

[英]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以及formControlNameformControl之一的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表示一個提供者令牌提供了一組元素。 例如,路由器支持的所有指令routerLinkrouter-outletROUTER_DIRECTIVES提供。
    如果使用令牌ROUTER_DIRECTIVES注冊了新的提供程序,則它將覆蓋以前注冊的指令。 如果multi: true (上注冊的第一 tjhe新提供商)設置,新指令將被添加到先前注冊的指令,而不是壓倒一切。
    當注入ROUTER_DIRECTIVESconstructor(@Inject(ROUTER_DIRECTIVES) directives) {} )時,將注入一系列指令實例。 注入ROUTER_DIRECTIVES通常沒有任何意義。 我將其用作示例,因為它是multi: true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM