2012-09-08 123 views
4

有沒有辦法告訴Ember不要重新渲染視圖?阻止視圖重新渲染

一個簡單的用例:

我有一個動態填充的客戶端列表。 單擊列表中的客戶端進入客戶端詳細信息頁面。 當我點擊「返回」時,我想要完全在客戶列表中的相同位置。

通常情況下,Ember重新呈現視圖(當我轉換到另一個狀態時),而我以前的位置會丟失。

+0

我刪除了我的答案,因爲它沒有真正回答你的問題。 – nicholaides

+0

添加側面板與面板旁邊的空間客戶列表有一個插座,當客戶端被點擊時,插座有細節,這樣你的位置被保留...讓我? –

回答

1

我討厭成爲壞消息的持有者,但如果您正在導航到應用程序的不同部分,則無法停止使用餘燼進行重新呈現。如果它不再可見,這些項目已經從DOM彈出並不再存在。

我已經通過使用jQuery獲取頁面或對象的滾動位置在我自己的應用程序中解決了這個問題。 jQuery Scroll Top。我所做的是我在存儲滾動位置的模型上放置了一個位置。然後在視圖我有一個類似

didInsertElement: function() { 

    //Restore previous scroll position 
    $('#item').scrollTop(this.get('model.scrollPosition')); /* or on older ember builds `this.getPath('model.scrollPosition')` */ 

    //Update the model with new scroll position when user scrolls 
    var _self = this; 
    $('#item').scroll(function(e){ 
     _self.get('model').set('scrollPosition', $(this).scrollTop()); 
    }); 

} 

這裏的關鍵外賣是,意見必須重新渲染。沒有停止。作爲開發人員的工作是保存視圖所需的任何狀態(滾動位置,具有焦點的元素等),以便可以恢復。 Ember給你的工具來做到這一點。