2013-04-02 114 views
1

更新到emberjs-rc.2時已解決。見答案。Emberjs:加載其他路徑的數據

在我的應用程序中,我有2個帶有嚮導功能的頁面。在第一頁上,用戶將提供一些數據,並且在下一頁上,用戶將在基於第一頁上的數據構建的列表中選擇一個項目。我想要做的是在第一頁上的所需數據有效時立即開始加載第二頁的數據,即使用戶仍然在第一頁上。這是因爲構建列表服務器需要一些時間,我希望在轉換到下一頁時準備好數據。

這兩個頁面/路由嵌套在相同的資源下。

我的路線:

App.YayRoute = Ember.Route.extend({ 

    events: { 
    dataValid: function() { 
     this.controllerFor('yaySecond').send('loadStuff'); 
    } 
    } 
}); 

App.YaySecondRoute = Ember.Route.extend({ 
    events: { 
    loadStuff: function() { 
     this.controller.set('stuff', App.Stuff.find()); 
    } 
    } 
}); 

在YayFirstController,我觀察相關數據,做this.send( 'dataValid')時,它是。頂級路線YayRoute選擇了這個好,並在第二條路線上觸發loadStuff。 App.Stuff.find()看起來像這樣

find: function() { 
    var result = Ember.A([]); 
    $.getJSON(url, function(data) { 
     // populate result 
    }); 
    return result; 
} 

一切都打算時運行的,但是我的問題是關於YaySecondController的東西從loadStuff叫時,不填充。如果我在yaySecondRoute上添加controller.set('stuff',App.Stuff.find()) loadStuff的內容到setupController,數據將加載OK。但是,隨着數據儘快加載,我失去了冷靜。有任何想法嗎?

回答

0

因此,今天更新到emberjs-rc.2時會自行解決。我還是新來的燼,所以我不知道發生了什麼。無論如何,這是做到這一點的正確方法嗎?這似乎有點麻煩。

+0

現在有效。但是你還不滿意嗎? – mavilein

+0

我可以接受目前的解決方案,我只是想知道這是否可以以更簡單的方式完成。不過這沒什麼大不了的。 – rallrall