2013-09-23 2 views
1

최신 Ember Data 버전 1.0.0-beta를 사용하고 있습니다. 로컬 저장소에서 hasMany 관계에 개체를 추가하려고하지만 몇 가지 문제가 있습니다. 내가 배열 설명 문자열의 배열을 포함 "Items_descriptions"를 불렀다엠버 모델의 hasMany 속성에 레코드를 추가하는 방법은 무엇입니까?

App.Item = DS.Model.extend({ 
    description: DS.attr('string'), 
}); 

App.Basket = DS.Model.extend({ 
    selectedItems: DS.hasMany('item'), 
    name: DS.attr('string'), 

}) 

:

나는 두 가지 모델이있다. . 나는 다음과 같은 방식으로 사용 바구니에 항목을 삽입하려고 :이 라인 basket_record.get ('selectedItems를')에서 다음과 같은 오류가 그러나

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(); 

을 pushObjects (itemsarray); ":

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 방법 작품 만이 데이터를 추가 doesnot :

Uncaught TypeError: Cannot read property 'typeKey' of undefined

는 또한 또한 나던 작품은 그 그러나, App.Model.store.find 방법을 사용하여 시도 selectedItems 특성에 성공적으로 추가되었습니다. localstorage를 확인하면 바스켓의 이름 속성이 올바르게 채워지지만 선택한 항목의 배열이 비어 있습니다.

내가 아는 바로는 App.Model.store.find는 약속을 반환하고 App.Model.store.filter(). objectAt (0)는 개체 자체를 반환합니다.

내가 여기 잘못 생각한가요? 어떤 도움이라도 대단히 감사합니다. 정말 고마워!

답변

1

이 문제를 해결 한 방법은 내 데이터를 online version으로 변경하는 것입니다. 나는 ember 데이터 (9 월 13 일에 다운로드 됨)의 다운로드 버전을 사용하고있었습니다. 하지만 지난 10 일 동안 ember-data js 라이브러리에 대한 몇 가지 편집 작업이있었습니다. 오류가 처음에는 이전 버전의 버그로 인해 발생했다고 생각합니다. 최신 온라인 버전의 Ember 데이터로 업데이트 한 후 hasMany 관계가 업데이트되었습니다.

FYI : App.Model.store.filter (..). objectAt (0)의 첫 번째 메서드를 사용하여 개체를 가져 와서 hasMany 관계로 설정합니다.