在Angular中,getter会在构造函数之前被评估。这是因为Angular在创建组件实例时,会先评估所有的输入属性和getter,然后再调用构造函数。
下面是一个示例解决方法:
@Component({
selector: 'app-example',
template: `
{{ exampleValue }}
`
})
export class ExampleComponent implements OnInit {
private _exampleValue: string;
// 定义getter
get exampleValue(): string {
return this._exampleValue;
}
constructor() {
// 在构造函数中初始化变量
this._exampleValue = 'Hello Angular!';
}
ngOnInit() {
// 在ngOnInit钩子函数中可以访问getter
console.log(this.exampleValue); // 输出: Hello Angular!
}
}
在上面的示例中,我们定义了一个私有变量 _exampleValue
和一个公共的 getter 方法 exampleValue
。在构造函数中初始化私有变量,然后在模板中使用getter来获取变量的值。在 ngOnInit
钩子函数中,我们也可以访问getter来获取变量的值。
这样,当组件实例被创建时,getter会在构造函数之前被评估,确保我们能够在构造函数中访问到已经初始化的变量值。