在 AngularJS 中,$onInit
函数是否可以在没有该函数的情况下进行相同的初始化?
例如这个:
module.component("myComponent", {
...
controller: function() {
const $ctrl = this;
$ctrl.$onInit = () => {
$ctrl.var1 = "hello";
$ctrl.var2 = { test: 3 };
}
}
});
也可以这样做:
module.component("myComponent", {
...
controller: function() {
const $ctrl = this;
$ctrl.var1 = "hello";
$ctrl.var2 = { test: 3 };
}
});
有没有什么情况$onInit
是必要的?
Per the AngularJS 文档
在构建元素上的所有控制器并初始化其绑定之后(以及在该元素上的指令的前和后链接函数之前)在每个控制器上调用。
这为您提供了两个保证:
- 该元素上的所有控制器均已构建
- 该元素的前置和后置链接功能尚未执行
与您的第一种方法相反,这些事实都不能得到保证(尽管第二个是highly可能)。
此外,就风格和可读性而言,它使潜在的读者/审阅者非常清楚,这是您作为开发人员打算在该控制器初始化时运行的代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)