在将此问题标记为重复之前...我知道您在想什么,这已被问过无数次,但不完全是。
我在研究期间从各种来源(包括官方文档,以及 Angular Guru 和传道者)知道,该$onInit
块通常保留用于依赖于 Angular 完成所有绑定的初始化工作/逻辑。
然而,变量初始化并不真正符合这个“工作/逻辑”的定义。特别是其中没有任何角度逻辑的变量。因此,ES6 构造函数似乎更适合变量初始化。同样适用于需要词法绑定范围的回调方法绑定,如下所示:
class myController() {
constructor() {
this.myVariableOne = 1,
this.myVariableTwo = 2,
this.myVariableThree = 3;
this.myMethod = this.myMethod.bind(this);
}
$onInit() { }
myMethod() {
console.log(this.myVariableOne, this.myVariableTwo, this.myVariableThree);
}
}
虽然这看起来很适合遵循“角度方式”做事,仅使用$onInit
块进行初始化工作/逻辑,我也看到很多人说角度控制器类构造函数应该只用于依赖注入设置。
所以,这让我很困惑。构造函数似乎是最适合变量初始化和方法绑定的块,并且$onInit
似乎它并不真正适合该角色,但确实不清楚我应该使用什么。有人可以帮我弄清楚我应该将变量定义和方法绑定放在哪里吗?