加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs生命周期:$onInit未调用

发布时间:2020-12-17 17:09:37 所属栏目:安全 来源:网络整理
导读:从 angularjs 1.5迁移到1.6的文档说:“禁用(默认情况下)控制器实例上绑定的预分配,这有助于支持本机ES6类.” “依赖于绑定存在的初始化逻辑应该放在控制器的$onInit()方法中,保证在分配绑定后始终调用它.” 我尝试为我们的项目进行迁移,我观察到,对于某些控
从 angularjs 1.5迁移到1.6的文档说:“禁用(默认情况下)控制器实例上绑定的预分配,这有助于支持本机ES6类.” “依赖于绑定存在的初始化逻辑应该放在控制器的$onInit()方法中,保证在分配绑定后始终调用它.”

我尝试为我们的项目进行迁移,我观察到,对于某些控制器,$onInit不会被调用.在官方文档中我没有发现任何与此相关的内容,但还有其他一些来源:

https://www.tejusparikh.com/2017/universality-oninit-callback-angularjs.html

https://github.com/angular/angular.js/issues/14630

还有其他情况,$onInit没有被调用?这是在“更正式”的某处记录的吗?

谢谢!

解决方法

我发现如果你的控制器返回一个对象,那么就不会触发$onInit.

遵循传统的JS IIFE模块模式,您可以返回将公钥映射到内部方法的对象,从而有效地为私有范围的函数创建公共接口.在转换为带有Controller的Component时,我留下了一些代码,发现在我删除了“return {};”之前没有调用$onInit.在控制器功能结束时.

我不知道这是否与sanyi9正在处理的原因相同,但是即使控制器的其余部分按预期执行(并且其他控制器具有正在运行的$onInit调用),也是$onInit的相同症状未被调用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读