3

データがmongo/mongooseに保存されているノード/エクスプレスルートを使用してデータ/APIをフェッチし、BackboneMarionette内に表示しようとしています...

使用しているルートは次のとおりです。

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の例を見たことがありますが、データベースからの例はありません。

4

3 に答える 3

1

これがあなたの状況でうまくいくかどうかはわかりませんが、あなたのコレクションでは、データを受け入れる parse メソッドを追加してください。Backbone が内部データを取得できないネストされた配列がある場合があります。

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

この parse メソッド内にデバッグ ポイントを追加して、渡されるデータがデータをネストしているかどうかを確認します。

于 2013-03-19T13:39:16.573 に答える
0

問題はこれでした... var thecats= myCats(); thecats.fetch(); それが誰かを助けることを願っています

于 2013-04-01T19:48:56.517 に答える