我使用的是最新的灰燼數據版本1.0.0-β。我正在嘗試將對象添加到本地存儲中的hasMany關係,但遇到了一些問題。如何將記錄添加到灰燼型號的的hasMany屬性?
我有兩個型號:
App.Item = DS.Model.extend({
description: DS.attr('string'),
});
App.Basket = DS.Model.extend({
selectedItems: DS.hasMany('item'),
name: DS.attr('string'),
})
我稱之爲「Items_descriptions」包含描述字符串數組的數組。 。 我嘗試使用以下方式將項目插入一個籃子:
var basket_record = App.Basket.store.createRecord('basket', { name: 'Test_record' });
var itemsarray = [];
Items_descriptions.forEach(function(description){
var item = App.Item.store.filter('item', function(record){return record.get('description') == description}).objectAt(0);
itemsarray.push(item);
});
basket_record.get('selectedItems').pushObjects(itemsarray); // ***errors out here****
basket_record.save();
不過,我得到以下錯誤在這行basket_record.get( 'selectedItems')pushObjects(itemsarray);」:
Uncaught TypeError: Cannot read property 'typeKey' of undefined
我也嘗試使用App.Model.store.find方法,但是也並不工作:
var basket_record = App.Basket.store.createRecord('basket', { name: 'Test_record' });
var itemsarray = [];
Items_descriptions.forEach(function(description){
App.Item.store.find('item', {'description': description}).then(function(item){
itemsarray.push(item);
});
});
basket_record.get('selectedItems').pushObjects(itemsarray);
basket_record.save();
的App.Mode.store.find方法的作品,但它不列入添加數據成功進入selectedItems屬性。當我檢查本地存儲時,籃子中的名稱屬性被正確填寫,但所選項目的數組爲空。
從我的理解,App.Model.store.find返回一個承諾和一個App.Model.store.filter()。objectAt(0)返回對象本身。
任何想法我在做什麼錯在這裏?任何幫助是極大的讚賞。非常感謝!