Backbone.Collection에서 저장할 수 없는 하나 이상의 모델 문제 해결
6111 단어 Backbone.jsJavaScript
문제에 관하여 Collection에 저장된Model의attributes 또는 서버의 응답에 대상 구조를 가진 id 속성이 있는지 여부.
있다면 십중팔구 그게 이유겠지.
여기서 중요한 것은 대상 구조를 가진 속성의 명칭이 id라는 것이다.
대상 구조의 id 속성을 가진 대상{
id: {
shopId : 'hogeShop',
humanId: 'TaroYamada'
}
}
setメソッド 또는 addメソッド에서 이러한 구조를 가진 대상을 여러 개Collection로 압축하더라도 Collection에 하나만 저장Model한다.
문제가 발생한 코드var attrs = [
{ id: { shopId : 'hogeShop', humanId: 'TaroYamada' } },
{ id: { shopId : 'hogeShop', humanId: 'JiroTanaka' } }
];
new Backbone.Collection(attrs);
실행 결과(Google Chrome for Windows 40.0.2214.11m)
그룹의 첫 번째만 Model 로 저장합니다.
조사가 아직 끝나지 않았다 Collection.set 주변 코드를 조사한 후Collection에 Model를 채우는 과정에서 단축된 역사 기록을 변수에 저장할 때Model.id를 사용했다.
기본값Model.id은 Model.attributes.id입니다.
이때 Model.id의 값이 대상 구조가 되면 Collection에서 기대하는 동작을 할 수 없다.
주위의 행동을 자세히 읽지 못해서 죄송합니다.
만약 이 부분을 아는 사람이 있다면 평론에서 교수해 주십시오.
대응법 Collection.set에서 비 대상 구조의 값을 지정하면 되기 때문에 모든 Backbone 대상이 자동으로 생성된Model.id을 지정하여 문제를 피하는 것이 좋다.cid 임의의 문자열을 통해 Model.idAttribute의 어떤 값을 Model.attributes로 지정할 수 있습니다.
문제 없는 코드var attrs = [
{ id: { shopId : 'hogeShop', humanId: 'TaroYamada' } },
{ id: { shopId : 'hogeShop', humanId: 'JiroTanaka' } }
];
new Backbone.Collection(attrs, { model: Backbone.Model.extend({ idAttribute: 'cid' }) });
실행 결과(내용을 확인하기 위해 변수로 추출)
이번엔 잘했어.잘 됐다.
실제 인코딩이 이렇게 될 것 같아서요.
collection.jsvar Collection = Backbone.collection.extend({
model: Backbone.Model.extend({ idAttribute: 'cid' });
});
var collection = new Collection(attrs);
만약 토로한 부분, 잘못된 인식이 있다면 반드시 지적해 주십시오.
Reference
이 문제에 관하여(Backbone.Collection에서 저장할 수 없는 하나 이상의 모델 문제 해결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/TomoyaShibata/items/fcd8d7456773852b9cce
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
{
id: {
shopId : 'hogeShop',
humanId: 'TaroYamada'
}
}
var attrs = [
{ id: { shopId : 'hogeShop', humanId: 'TaroYamada' } },
{ id: { shopId : 'hogeShop', humanId: 'JiroTanaka' } }
];
new Backbone.Collection(attrs);
Collection.set 주변 코드를 조사한 후Collection에 Model를 채우는 과정에서 단축된 역사 기록을 변수에 저장할 때Model.id를 사용했다.기본값
Model.id은 Model.attributes.id입니다.이때
Model.id의 값이 대상 구조가 되면 Collection에서 기대하는 동작을 할 수 없다.주위의 행동을 자세히 읽지 못해서 죄송합니다.
만약 이 부분을 아는 사람이 있다면 평론에서 교수해 주십시오.
대응법 Collection.set에서 비 대상 구조의 값을 지정하면 되기 때문에 모든 Backbone 대상이 자동으로 생성된Model.id을 지정하여 문제를 피하는 것이 좋다.cid 임의의 문자열을 통해 Model.idAttribute의 어떤 값을 Model.attributes로 지정할 수 있습니다.
문제 없는 코드var attrs = [
{ id: { shopId : 'hogeShop', humanId: 'TaroYamada' } },
{ id: { shopId : 'hogeShop', humanId: 'JiroTanaka' } }
];
new Backbone.Collection(attrs, { model: Backbone.Model.extend({ idAttribute: 'cid' }) });
실행 결과(내용을 확인하기 위해 변수로 추출)
이번엔 잘했어.잘 됐다.
실제 인코딩이 이렇게 될 것 같아서요.
collection.jsvar Collection = Backbone.collection.extend({
model: Backbone.Model.extend({ idAttribute: 'cid' });
});
var collection = new Collection(attrs);
만약 토로한 부분, 잘못된 인식이 있다면 반드시 지적해 주십시오.
Reference
이 문제에 관하여(Backbone.Collection에서 저장할 수 없는 하나 이상의 모델 문제 해결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/TomoyaShibata/items/fcd8d7456773852b9cce
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
var attrs = [
{ id: { shopId : 'hogeShop', humanId: 'TaroYamada' } },
{ id: { shopId : 'hogeShop', humanId: 'JiroTanaka' } }
];
new Backbone.Collection(attrs, { model: Backbone.Model.extend({ idAttribute: 'cid' }) });
var Collection = Backbone.collection.extend({
model: Backbone.Model.extend({ idAttribute: 'cid' });
});
var collection = new Collection(attrs);
Reference
이 문제에 관하여(Backbone.Collection에서 저장할 수 없는 하나 이상의 모델 문제 해결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/TomoyaShibata/items/fcd8d7456773852b9cce텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)