7
我看到指令正在使用@Attribute()通常作爲在構造這樣的參數:)中的組件使用類似這樣的Angular2中的裝飾器@Input()和@Attribute()之間的主要區別是什麼?
export class EqualValidator implements Validator {
constructor(@Attribute(‘validateEqual’) public validateEqual: string) {}
validate(c: AbstractControl): { [key: string]: any } {}
}
和@input(:
export class UserProfile {
@Input() user;
constructor() {}
}
然後在@Input()的情況下,可以使用屬性綁定將數據傳遞到模板中的這些變量。
這些裝飾器和你應該什麼時候使用它們有什麼區別?
謝謝你的回答。我理解@Input()的解釋,但不理解@Attribute()。一個屬性的不變價值是什麼意思?另外我不明白爲什麼你想在某些情況下使用@Input()來使用@Attribute()。 – Alex
使用@Attribute,我們可以將html上屬性的常量值映射到組件上的屬性。 –
你的意思是不變的價值?就像一個不能改變的字符串?它必須是一個字符串嗎?或者它可能是一個複雜的對象?您何時想使用@Attribute()而不是@Input()?我仍然不明白他們之間的區別。我知道一個在構造函數中聲明爲參數,另一個聲明爲屬性。 – Alex