在Angular中,可以通过@Input装饰器将组件中的属性暴露给其它组件。然而,有些情况下需要将属性绑定到getter方法上,而非直接的属性。此时,可以通过使用@Input装饰器的setter方法来实现属性绑定到getter的效果。 示例代码如下:
@Component({
selector: 'app-test',
template: {{greeting}}
})
export class TestComponent {
@Input()
set name(value: string) {
this._name = value;
}
get greeting(): string {
return Hello, ${this._name}!
;
}
private _name: string; }
@Component({
selector: 'app-root',
template:
})
export class AppComponent {
username = '';
}
在这个示例代码中,TestComponent定义了一个名为name的@Input装饰器的setter方法,这个setter方法将传入的值赋值到私有属性_name上。而在TestComponent类中的greeting的getter方法中,会调用_name属性,从而实现了绑定输入属性到getter方法上的效果。在AppComponent上通过使用[name]将username属性绑定到了TestComponent的name属性之上。
下一篇:绑定属性始终为null。