3

我试图使用存储在 mongo/mongoose 中的数据的节点/快速路由来获取数据/api,并将其显示在 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)现在我怎样才能让集合/模型/项目视图/等使用我数据库中的这个 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。

4

3 回答 3

1

不确定这是否适用于您的情况,但在您的收藏中,添加一个接受您的数据的解析方法。您可能有一个 Backbone 无法从中检索内部数据的嵌套数组。

parse: function(data) {
  return data[0];
}

我将在此解析方法中添加一个调试点,以查看传入的数据是否嵌套数据。

于 2013-03-19T13:39:16.573 回答
1

在您发布的代码中,您实际上没有从服务器获取您的集合。

尝试这样做:

var catCollection = new MyCats();
catCollection.fetch();

var angryCatsView = new AngryCatsView({collection: catCollection});
angryCatsView.render();
于 2013-06-26T06:05:36.863 回答
0

问题是... var thecats= myCats(); thecats.fetch(); 希望它可以帮助某人

于 2013-04-01T19:48:56.517 回答