2017-05-17 2 views
3

Ich versuche, einen Eingang alias in einer Richtlinie festgelegt folgendes Beispiel: https://angular.io/docs/ts/latest/guide/attribute-directives.html#!#bind-to-an--input-aliasAngular: Binden an einem @Input alias

@Input('appAvatarColor') name: string; 

Das Programm funktioniert, aber ich empfange diese Warnung von TS Lint

die Richtlinie Eingabeeigenschaft nicht

umbenannt werden sollte

die Richtlinie Selektor ist diese

@Directive({ 
    selector: '[appAvatarColor]' 
}) 

Mache ich etwas falsch?

+1

Ich vermute, Sie haben '" no-input-rename ": true' Regel in Ihrem' tslint.json' Datei – yurzui

+1

@ yurzui ja. Das ist richtig. Ich verwende den Standard tslint.json, der von angular cli generiert wurde. Meine Frage ist, warum wird dies standardmäßig als schlechte Praxis angesehen? –

Antwort

8

können Sie entweder deaktivieren Regel in tslint.json

"no-input-rename": false 

oder deaktivieren wie auch nur für bestimmte Linie Überprüfung:

// tslint:disable-next-line:no-input-rename 
@Input('appAvatarColor') name: string; 

Meine Frage ist, warum ist dies standardmäßig eine schlechte Praxis in Betracht gezogen?

  • Zwei Namen für die gleiche Eigenschaft (eine private, eine öffentliche) ist von Natur aus verwirrend.

  • Sie sollten einen Alias ​​verwenden, wenn der Anweisungsname auch eine Eingabeeigenschaft ist und der Direktivenname die Eigenschaft nicht beschreibt.

Von https://angular.io/docs/ts/latest/guide/style-guide.html#!#05-13

1

können Sie es auf diese Weise implementieren

@Input() appAvatarColor: string;

Verwandte Themen