2013-03-31 46 views
1

修訂12之前,我想簡單地執行以下操作來創建一個對象及其關聯「的hasMany」的關係如何設置QUnit數據燼數據修訂12

test("findMany generates http ...", function() { 
    store.load(Person, {id: 9, name: "Toran Billups", tasks: [1, 2]}); 
    person = store.find(Person, 9); 
    expectLoaded(person); 

    equal(ajaxUrl, undefined, "no Ajax calls have been made yet"); 

    var tasks = get(person, 'tasks'); 

    equal(get(tasks, 'length'), 2, ""); //this now fails showing 0 tasks ... 
    }); 

但經過升級的「任務」的hasMany似乎是0而不是2,正如我所預料的那樣。

這裏是模型,如果在我知道我可以在幾個任務加載後做一個簡單的「pushObject」任何方式

var attr = DS.attr, hasMany = DS.hasMany, belongsTo = DS.belongsTo; 

    Person = DS.Model.extend({ 
    name: attr('string') 
    }); 

    Task = DS.Model.extend({ 
    name: attr('string'), 
    isFinished: attr('boolean'), 
    owner: belongsTo(Person) 
    }); 

    Person.reopen({ 
    tasks: hasMany(Task) 
    }); 

幫助,但我的測試上面的目的是驗證$。 ajax行爲,當我只有任務id相關聯,並且ember-data將獲取模型的其餘部分(延遲加載)。是否有可能像我在第12版中保留它一樣?

回答

1

看起來您需要按照預期使用修訂版12中的「loadHasMany」選項!

test("findMany generates http ...", function() { 
    store.load(Person, {id: 9, name: "Toran Billups"}); 
    person = store.find(Person, 9); 
    store.loadHasMany(person, 'tasks', [ 1, 2 ]); 
    expectLoaded(person); 

    equal(ajaxUrl, undefined, "no Ajax calls have been made yet"); 

    var tasks = get(person, 'tasks'); 

    equal(get(tasks, 'length'), 2, ""); //this actually returns 2 :) 
    }); 
+0

只是一個音符轉12(截至04/21)的-the最新版本是回我有它最初 –

+0

@Toren的方式你怎麼初始化「存儲」?你可以添加初始化設置嗎? – Swati