任何人都可以啓發我如何在Ember.View中使用becameVisible
鉤子嗎?如果我以與didInsertElement
掛鉤相同的方式使用它,則在我預期它不會觸發時。成爲EmberJS視圖中的可視鉤子
案件是,我有多個選項卡,其中一個包含谷歌地圖。只要選中該選項卡,我需要在地圖上觸發刷新。
關於掛鉤的文檔可以發現here,圍繞中途的頁面,在生命週期掛鉤
我在灰燼1.3.2
任何人都可以啓發我如何在Ember.View中使用becameVisible
鉤子嗎?如果我以與didInsertElement
掛鉤相同的方式使用它,則在我預期它不會觸發時。成爲EmberJS視圖中的可視鉤子
案件是,我有多個選項卡,其中一個包含谷歌地圖。只要選中該選項卡,我需要在地圖上觸發刷新。
關於掛鉤的文檔可以發現here,圍繞中途的頁面,在生命週期掛鉤
我在灰燼1.3.2
那麼在關於標題回答到becameVisible
鉤上風景。該視圖僅在視圖的isVisible
屬性更改時觸發。默認情況下,isVisible
屬性在視圖上設置爲true。因此,如果您在視圖上切換該屬性,或將其設置爲false,則該視圖將被隱藏,並且當becameHidden
掛鉤被設置爲true時會觸發becameVisible
掛鉤。
因此,可以說對我們有針對性的視圖的動作和視圖名稱App.MyDiv
,我們將用它來說明鉤becameVisible/becameHidden該視圖上發射的鏈接索引模板:
<script type="text/x-handlebars" data-template-name="index">
<a href="#" {{action 'hide' target="view"}}>Hide that Div</a>
{{view App.MyDiv}}
</script>
我們需要處理隱藏動作,並且由於它的目標視圖我們將把它放在那裏,然後使用viewName屬性設置爲「隱藏mydiv」的視圖App.MyDiv,以便我可以通過名稱獲取它,然後設置isVisible
屬性:
App.IndexView = Ember.View.extend({
actions: {
hide: function() {
console.log(this.get('hidemydiv').toggleProperty('isVisible'));
}
}
});
現在我們App.MyDiv視圖定義:我們可以有這樣的事情:
App.MyDiv = Ember.View.extend({
viewName: 'hidemydiv',
templateName: 'myDiv',
didInsertElement: function() {
console.log('My Div: didInsertElement');
},
becameVisible: function() {
console.log('My Div: Became Visible');
},
becameHidden: function() {
console.log('My Div: Became Hidden');
}
});
這裏是一個JSBin顯示當isVisible
財產是在視圖切換會發生什麼。
http://emberjs.jsbin.com/nuniqawi/1/edit
關於你的問題,你可以有標籤上的行動,按下時,它調用某種在地圖上重新呈現的動作。
我無法找到任何文件的一個becomeVisible掛鉤,http://emberjs.com/api/classes/Ember.View.html你可以提供一個鏈接等 – MartinElvar
@MartinElvar我添加了一個參考。它可以在Lifecycle Hooks的[view層的解釋](http://emberjs.com/guides/understanding-ember/the-view-layer/)中找到 – Rudi