2014-05-02 22 views
4

在我的應用程序中,我有一個項目的飼料。讓我們只是說這兩個項目是任務和購買。Ember 1.5如何組合兩個記錄陣列?

在我的源中,我希望這兩個項目都能填充按日期排序的數組。他們都有類似的屬性,如標題和日期。至於在用戶界面上顯示它們,我毫不懷疑我將能夠弄清楚。

問題是獲取記錄。

store.find('task'); 
store.find('purchase'); 

這兩個都返回promise數組。我假設我需要某種陣列代理。但是我的當前代碼每次在這些數組中的任何一個對象上修改屬性時都不會更新數組。當對象被添加到這些商店時,它也不會正確呈現或更改。

有沒有人有幸將兩個記錄數組合併成一個?它的功能就好像它只是一個記錄數組,它可以隨着數組和對象內的每個變化完美地更新。

任何幫助表示讚賞!如果需要更多的代碼,我會發布!

更新::

附件是應該顯示什麼,我試圖做的,而事實上,它不工作一JSBIN。

http://emberjs.jsbin.com/jebugofo/2/edit?html,js,console,output

+0

一個失敗的js bin會給你更多的迴應。 – blessenm

+0

好點,把一個鏈接到一個非工作JSBIN – bmeyers

回答

7

這是您的fiddle modified

Im新的數據。但根據我的理解,你正在合併2個對象。我進行了修改,以便在合併之前將模型對象轉換爲數組。

var stream = Ember.A(); 
stream.pushObjects(txn.toArray()); 
stream.pushObjects(job.toArray()); 
return stream; 

我也修改了你觀察的屬性。現在我觀察模型數據。

}.property('[email protected]', '[email protected]'), 
+0

這確實有效。謝謝您的回答。我不知道爲什麼在我的應用程序中,我能夠得到類似的方法,但是當我修改現有的項目時,它不會在列表中更新。我會繼續採用你在這裏的方法,看起來我不應該遇到任何進一步的問題。謝謝! – bmeyers

0

如果你問如何檢索一個模型中兩個任務和購買 - 你可以做到以下幾點:

App.YourRoute = Em.Route.extend({ 
    model: function(params) { 
    return Em.RSVP.hash({ 
     tasks:  this.store.find('task'), 
     purchases: this.store.find('purchase') 
    }); 
}, 

然後在你的模板,你可以做

<script type="text/x-handlebars" data-template-name="index"> 
    <h2>Tasks:</h2> 
    <ul> 
    {{#each tasks}} 
     <li>{{title}}</li> 
    {{/each}} 
    </ul> 
    <h2>Purchases:</h2> 
    <ul> 
    {{#each purchases}} 
     <li>{{title}}</li> 
    {{/each}} 
    </ul> 
</script> 
+0

我欣賞答案!不幸的是,這不是目標。我實際上希望兩者都在同一個陣列中成爲模型。因此,將這兩種方法合併爲供稿項目,併爲每種方法在同一列表中顯示每種模型類型。謝謝你,雖然 – bmeyers