Ember控制器生命周期挂钩

jax*_*jax 11 ember.js

我知道有一个init钩子,但似乎在那个阶段没有正确设置的视图.一旦从控制器正确设置屏幕,我需要挂钩事件.

所有控制器和路由生命周期挂钩的文档在哪里.我发现仅适用于View:

didInsertElement 
parentViewDidChange 
willClearRender 
willDestroyElement 
willInsertElement
Run Code Online (Sandbox Code Playgroud)

小智 5

在 ember 中,控制器生命周期的定义不是很明确,因为控制器除了使变量可用于模板之外没有太多用途。

控制器的钩子很少,其中 2 个是

  1. init - 用默认值初始化,它只调用一次。
  2. willDestroy - 任何视图拆卸的钩子

当您进入路线和离开路线时,路由器挂钩可以有两种类型。

路由器挂钩

启动钩子

  1. 前模型
  2. 模型
  3. 后模型
  4. 重定向
  5. 启用
  6. 设置控制器
  7. 渲染模板

关机钩子

  1. 停用

  2. 重置控制器


giv*_*nse 1

您可以使用didInsertElement您可以在视图中保证在 DOM 元素插入页面后执行。

请注意,仅保证插入视图(根元素),如果您计划为该视图添加事件或 DOM 操作,则必须使用该afterRenderEvent技术。阅读afterRenderEvent 技术。我使用的mixin:渲染后mixin

编辑:自 1.8.0-beta.1 以来,它didInsertElement已经发生了变化,它会等到它在视图的最后一个子级中触发,然后从那里冒泡。不再需要渲染后混合。