2016-07-19 375 views
5

Sto implementando una direttiva personalizzata in Angular 2, direttiva per la convalida del modulo e in molti punti vedo che nella definizione direttiva la proprietà selector è associata a più ID, ad esempio:Direttiva angolare2 - selettore con identificativi multipli

@Directive({ 
    selector: '[my-custom-validator][ngModel]' 
}) 

Che cosa significa la selezione multipla "[...]" (parentesi)?

risposta

4

Come nel CSS, il selettore [attr] corrisponde agli elementi che hanno un attributo denominato attr. Quando più selettori di attributi sono concatenati insieme, tutti gli attributi devono esistere sull'elemento.

Nota: A differenza di CSS, angolare ignora qualsiasi [...] o [(...)] staffe vincolanti per l'attributo di destinazione quando si esegue la partita.

Pertanto, gli elementi selettore [my-custom-validate][ngModel] abbinamento che hanno sia un attributo my‑custom‑validate e un attributo ngModel (compresi [ngModel] e [(ngModel)]). Ad esempio, il selettore seleziona

<input type="text" name="username" my-custom-validate [(ngModel)]="model.username"> 

ma non

<input type="text" name="username" my-custom-validate> 
+0

quindi credo che vogliamo sfruttare l'attributo ngModel e attaccare la nostra direttiva solo ai componenti con ngModel? altrimenti non si verificherà alcun cambiamento? – galvan

+0

Questo è corretto. –