我的观点变得可见时我尝试做某事,但becameVisible
事件回调未被调用。
以下是我的观点:
App.LessonView = Ember.View.extend({
click: function() {
console.log("click");
},
becameVisible: function() {
console.log("becameVisible");
},
willClearRender: function() {
console.log("willClearRender");
}
});
当我点击视图中的任何元素时,click
事件会被触发,但becameVisible
和willClearRender
并未被触发。
我有什么不理解的吗?
答案 0 :(得分:2)
didInsertElement将触发。 当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.当改变支持视图的模型时,ember将更新当前视图中的绑定,因此Ember不必重新插入视图,didInsertElement
将不会触发。
2.如果您在didInsertElement
上设置事件处理程序(如引导菜单事件),则需要在willDestroyElement
事件中关闭该绑定。
答案 1 :(得分:1)
willClearRender
。当视图的isVisible属性更改为true时,将调用becameVisible
。你看看jsbin。