2012-02-11 79 views
0

編輯:在這裏找到了答案:Using Ember.js, how do I run some JS after a view is rendered?灰燼事件比單擊

在MapView的

didInsertElement: function() { 
    this._super(); 
    map_initialize(); 
}, 

***********原帖******* *********

我很新的JS,我試圖ember.js。

我想使用谷歌地圖API來顯示地圖。通常你應該初始化地圖

<body onload="map_initialize()"> 

但隨着地圖的div會收到地圖是灰燼視圖模板的一部分,它尚未在DOM當函數被調用。

console.log(document.getElementById("map_canvas")); 

返回false。

我然後放在初始化函數在我的地圖視圖,以便可以從綁在地圖DIV本身的事件調用它。這樣,在div加載之前調用map_initialize()是不可能的。

<script type="text/x-handlebars" data-template-name="map" > 

<div id="map_canvas" style="width:100%; height:100%" {{action "map_initialize" on="click"}}></div> 

</script> 

這個完美的作品。當頁面加載時,我可以點擊地圖div,然後加載地圖。

我的問題是,我怎麼能得到這個事件被自動調用了DIV被添加到DOM

<div id="map_canvas" style="width:100%; height:100%" onload="initialize()"></div> 

後有沒有效果(map_initialize()函數不叫)。

我也試圖通過恩伯,

<div id="map_canvas" style="width:100%; height:100%" {{action "map_initialize" on="load"}}></div> 

要做到這一點,但是這也什麼都不做。

什麼是正確的事件名稱?

感謝

回答

4

上查看覆蓋didInsertElement()(也許叫this._super()裏面,給你打電話只是陰影的功能)。

您還可以收聽到更改DOM,如DOMNodeInsertedDOMSubtreeModified,但是這將包括任何變化