2014-04-15 18 views
2

我試圖做一些事情,當我的視圖變得可見時,但becameVisible事件回調沒有被調用。爲什麼這些Ember.js視圖事件不被觸發?

這是我的觀點:

App.LessonView = Ember.View.extend({ 
    click: function() { 
     console.log("click"); 
    }, 

    becameVisible: function() { 
     console.log("becameVisible"); 
    }, 

    willClearRender: function() { 
     console.log("willClearRender"); 
    } 
}); 

當我在視圖中單擊任何元素時,click事件被解僱,但becameVisiblewillClearRender不是從來沒有這樣激動。

有什麼我不理解?

+0

你的燼寶版是什麼? – quaertym

+0

@quaertym 1.5.0 – SimpleJ

+1

您想使用didInsertElement http://emberjs.com/api/classes/Ember.LinkView.html#event_didInsertElement – kiwiupover

回答

2

當Ember將視圖放入頁面時會觸發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時,當該背視圖模型更改燼將更新當前視圖中的綁定所以灰燼不必重新插入視圖didInsertElement不會着火。 2.如果您在引導菜單事件didInsertElement上設置事件處理程序,則需要在willDestroyElement事件中關閉該綁定。

1

willClearRender在視圖重新呈現之前調用。當視圖的isVisible屬性更改爲true時調用becameVisible。你看看這jsbin

相關問題