2014-09-19 221 views
1

我有一大堆的jQuery代碼灰燼視圖操作DOM的事情是當我使用:強制刷新燼視圖

this.transitionTo("forecast.workpage", id); 

它只加載視圖一次,但是當我嘗試點擊它再次視圖不會再次執行,我嘗試例如增加this.rerender)在我的didInsertElement這樣結束幾種方法(:

didInsertElement : function(){ 
//all my js code 
this.rerender() 
} 

但trows錯誤

Uncaught TypeError: Cannot read property '0' of undefined 

,嘗試在開始,相同的結果中添加this._super(),是否有辦法強制視圖從視圖本身或路由刷新?或控制器?

編輯:嘗試沒有結果這一做法...

didInsertElement : function(){  
     this._super(); 
     Ember.run.scheduleOnce('afterRender', this, this.afterRenderEvent); 
    }, 

    afterRenderEvent: function(){ 

     //$(document).foundation(); 

     $(".sortables li:even").find('div.row').addClass("gray"); 


    } 

同樣的事情,執行onces但如果我點擊的動作不執行代碼。

回答

-1

要重新呈現整個路線(頁面),您可以使用路線的refresh method。或者,作爲this.rerender()失敗的可能解決方案,您可以在之後第一次致電

didInsertElement: function() { 
    Ember.run.scheduleOnce('afterRender', this, function() { 
     this.rerender(); 
    }); 
} 

就個人而言,我不會推薦任何一個。當數據依賴於更改時,您的視圖應該自動更新。如果它沒有更新,你可能會讓觀察者設置錯誤。 (雖然我不太瞭解你的用例,但請使用你的最佳判斷。)