我试图使用节点/快速路由获取数据/ api,数据存储在mongo / mongoose中,并在Backbone Marionette中显示...
使用的路线是:
enter code here`app.get('/cats', function(req, res){
Cat.find({}, function (err, docs) {
res.send(docs);
});
});
2)当我去localhost:3000 / cats时,我让json工作为:
[
{
"__v": 0,
"_id": "51318ce9a7ff43f808000003",
"catname": "Jonas"
},
{
"catname": "Justin",
"_id": "51416268a8225e7413000001",
"__v": 0
},
{
"catname": "Bobby",
"_id": "51416268a8225e7413000001",
"__v": 0
}
]
3)现在我如何让我的数据库中的collection / model / itemview / etc使用这个json数据?
我经常这么做:
MyCat = Backbone.Model.extend({});
MyCats = Backbone.Collection.extend({
model: MyCat,
url: '/cats'
});
CatView = Backbone.Marionette.ItemView.extend({
template: "#cats-template",
tagName: 'li',
className: 'cat'
});
AngryCatsView = Backbone.Marionette.CompositeView.extend({
tagName: "ul",
id: "cats",
template: "#cats-template",
itemView: CatView,
appendHtml: function(collectionView, itemView){
collectionView.$("ul").append(itemView.el);
}
});
但是我不确定使用哪种类型的初始化程序。 我见过硬编码json的例子,但是没有来自db。
答案 0 :(得分:1)
不确定这是否适合您的情况,但在您的收藏中,添加一个接受您的数据的解析方法。您可能有一个嵌套数组,Backbone无法从中检索内部数据。
parse: function(data) {
return data[0];
}
我会在此解析方法中添加一个调试点,以查看传入的数据是否嵌套数据。
答案 1 :(得分:1)
您发布的代码中没有任何地方您实际从服务器中提取了您的收藏。
尝试这个:
var catCollection = new MyCats();
catCollection.fetch();
var angryCatsView = new AngryCatsView({collection: catCollection});
angryCatsView.render();
答案 2 :(得分:0)
问题是这个...... var thecats = myCats(); thecats.fetch(); 希望它可以帮助某人