私のアプリでは、複数のページがあり、プレーン モデルがあります。プレーン モデルから、コレクションのparse
メソッドを使用してページに従ってさらにモデルを拡張しています。
これを行った後でも、返されたコレクションを取得していません。代わりに、バックエンドから取得しているオブジェクトだけを取得しています。
myview コード:
define([
"jquery",
"backbone",
"models/model",
"collection/dashBoardcollection",
"views/navi/naviView",
"views/dashBoard/myTaskView",
],function ($,Backbone,model,collection,naviView,myTaskView) {
var dashBoardView = Backbone.View.extend({
el:$("div.contentwrapper"),
events:{
"click h2" : "tileleDispaly"
},
initialize:function(){
this.$el.html(this.template);
this.c = collection;
this.listenTo(this.c, 'sync', this.logCollection);
this.c.fetch();
},
logCollection:function(){
console.log(this.c);
//not getting the collection shows array length as 1
},
tileleDispaly:function(e){
var tittle = $(e.target).text();
new myTaskView().showTitle(tittle);
}
});
return dashBoardView;
})
私のコレクションコード:
define(["backbone","models/model"], function (Backbone,model) {
var titleModel = model.extend({
"title" : "no title assigned"
})
var slideModel = model.extend({
"slide" : "no title assigned"
})
var rowModel = model.extend({
"title" : "no title assigned",
"text" : "no text",
"date" : "define date"
})
var optionModel = model.extend({
"show" : "no title assigned"
})
var dashBoardCollection = Backbone.Collection.extend({
url:"js/dashBoard.json",
model:model,
initialize:function(model,options){
},
parse:function(response){
var that = this;
var x = [];
// update 1. pushing all models to x array
_.each(response.DashBoard, function(obj){
if(obj.hasOwnProperty("title")){
x.push(new titleModel(obj));
}else if (obj.hasOwnProperty("widget")){
_.each(obj.widget, function(m){
x.push(new slideModel(obj));
})
}else if (obj.hasOwnProperty("activity")){
_.each(obj.activity, function(va){
if(va.hasOwnProperty("rows")){
_.each(va.rows, function(row){
x.push(new rowModel(row));
})
}else if (va.hasOwnProperty("option")){
_.each(va.option, function(option){
x.push(new optionModel(option));
})
}
})
}
})
this.add(x);
//update 2. adding the models to collection
console.log(this);
// console works fine shows the array length as 12.
return this;
//returning to view..
}
});
return new dashBoardCollection;
})
しかし、私のビューにはモデルがありません..コレクションから、ここで何が問題なのですか..? または私のアプローチの方法が間違っていますか?誰でもこの問題を整理するのに役立ちます..?