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