我是 angularJS 的新手,想为我的项目实现高效的东西,但被困在$onInit
(生命周期钩子)和activate()
.
问问题
1009 次
2 回答
3
在控制器内部创建一个函数并直接调用它与使用AngularJS 提供activate()
的生命周期钩子完全不同。$onInit()
来自https://docs.angularjs.org/guide/component#component-based-application-architecture:
$onInit()
- 在元素上的所有控制器都已构建并初始化其绑定之后(以及在此元素上的指令的前后链接函数之前)在每个控制器上调用。这是放置控制器初始化代码的好地方。
所以基本上activate()
,一旦你的控制器被构建,这个函数就会被调用。在成功绑定所有绑定$onInit()
后将调用该函数。因此,如果您尝试在构造函数中访问绑定变量,它们将不会被初始化。
于 2018-08-17T17:06:10.517 回答
0
使用activate()
是一个见仁见智的问题,因为它是一些固执己见的风格指南推荐的风格。
另一方面,$onInit
生命周期挂钩由$compile
服务调用。
从文档:
生命周期钩子
指令控制器可以提供以下由 AngularJS 在指令生命周期中调用的方法:
$onInit()
- 在元素上的所有控制器都已构建并初始化其绑定之后(以及在此元素上的指令的前后链接函数之前)在每个控制器上调用。这是放置控制器初始化代码的好地方。
于 2018-08-17T17:33:51.470 回答