私は2つのモデルと1つのコレクションを持っています。 JobSummary
はJobSummaryList
がJobSummary
アイテムのコレクションで、モデルであり、そして私はJobSummaryList
含まJobSummarySnapshot
モデルがあります:場合を除き...コレクションのあるbackbone.jsモデル
JobSummary = Backbone.Model.extend({});
JobSummaryList = Backbone.Collection.extend({
model: JobSummary
});
JobSummarySnapshot = Backbone.Model.extend({
url: '/JobSummaryList',
defaults: {
pageNumber: 1,
summaryList: new JobSummaryList()
}
});
私はJobSummarySnapshot
オブジェクトにfetch
を呼び出し、それを取得、すべてをI summaryList
コレクションを移動すると、すべてobject
であり、JobSummary
ではありません。
これはdefaults
オブジェクト以外では、summaryList
がJobSummaryList
であることを知りません。私は各項目を調べてJobSummary
オブジェクトに変換することができますが、私はそれを手動で行う必要なしにそれを行う方法があることを望んでいました。
var returnData = {
pageNumber: 3,
summaryList: [
{
id: 5,
name: 'name1'},
{
id: 6,
name: 'name2'}
]
};
var fakeserver = sinon.fakeServer.create();
fakeserver.respondWith('GET', '/JobSummaryList', [200,
{
'Content-Type': 'application/json'},
JSON.stringify(returnData)]);
var callback = sinon.spy();
var summarySnapshot = new JobSummarySnapshot();
summarySnapshot.bind('change', callback);
summarySnapshot.fetch();
fakeserver.respond();
var theReturnedList = callback.getCall(0).args[0].attributes.summaryList;
_.each(theReturnedList, function(item) {
console.log('Original Item: ');
console.log(item instanceof JobSummary); // IS FALSE
var convertedItem = new JobSummary(item);
console.log('converted item: ');
console.log(convertedItem instanceof JobSummary); // IS TRUE
});
UPDATE:
はここ(jsfiddle here作業)私のテストコードです 私がparse関数をオーバーライドし、そのように設定することができることを私に起こった...私は今、これを持っている:
JobSummarySnapshot = Backbone.Model.extend({
url: '/JobSummaryList',
defaults: {
pageNumber: 1,
summaryList: new JobSummaryList()
},
parse: function(response) {
this.set({pageNumber: response.pageNumber});
var summaryList = new JobSummaryList();
summaryList.add(response.summaryList);
this.set({summaryList: summaryList});
}
});
これまでのところ動作します。誰かがそれにコメントをしている場合に質問を残しておいてください....
に更新されますどうもありがとうございました。私は今日半分しか読んでいないという罪を犯しています。そしてもう一度、それは私を噛んでいます。上で述べたように、obseを解析関数から返すことは、ドキュメントではっきりと述べています....しかし、私は何とかそれを逃しました。再度、感謝します。 –
LOVEの 'set'の例! – Bart