当我的 View 变得可见时,我尝试执行某些操作,但未调用 becameVisible
事件回调。
这是我的观点:
App.LessonView = Ember.View.extend({
click: function() {
console.log("click");
},
becameVisible: function() {
console.log("becameVisible");
},
willClearRender: function() {
console.log("willClearRender");
}
});
当我单击 View 中的任何元素时,会触发 click
事件,但不会触发 becameVisible
和 willClearRender
事件。
有什么我不明白的地方吗?
最佳答案
didInsertElement 当 Ember 将 View dom 放入页面时触发。 当 ember 从页面中删除 dom 时,willDestroyElement 将触发。
App.LessonView = Ember.View.extend({
click: function() {
console.log("click");
},
didInsertElement: function() {
console.log("didInsertElement");
},
willDestroyElement: function() {
console.log("willDestroyElement");
}
});
使用didInsertElement时应该注意的一些事情
1. 当支持 View 的模型发生更改时,Ember 将更新当前 View 中的绑定(bind),因此 Ember 不必重新插入 View ,并且 didInsertElement
也不会触发。
2. 如果您在 didInsertElement
上设置事件处理程序(例如引导菜单事件),则需要在 willDestroyElement
事件中关闭该绑定(bind)。
关于javascript - 为什么这些 Ember.js View 事件没有被触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23094975/