2013-03-14 2 views
3

Im пытается извлечь данные/API с помощью узла/экспресс-маршрут с данными, хранящимися в Монго/мангустов и показать его в Backbone марионеток ...заселить Backbone марионеток Просмотров с данными Mongoose с помощью экспресс-маршрута

маршрут им с помощью это:

enter code here`app.get('/cats', function(req, res){ 
Cat.find({}, function (err, docs) { 
res.send(docs); 
    }); 
}); 

2) Когда я иду на локальный хост: 3000/кошек, я получаю JSON работаю как:

[ 
{ 
"__v": 0, 
"_id": "51318ce9a7ff43f808000003", 
"catname": "Jonas" 
}, 
{ 
"catname": "Justin", 
"_id": "51416268a8225e7413000001", 
"__v": 0 
}, 
{ 
"catname": "Bobby", 
"_id": "51416268a8225e7413000001", 
"__v": 0 
} 
] 

3) Теперь, как я могу иметь коллекцию/модель/itemview/др c использовать данные json из моего db?

Я обычно это далеко:

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); 
} 
}); 

Но тогда им не уверены, какой тип инициализаторе использовать. Я видел примеры с hardcoded json, но ни один из db.

+0

Проблема была эта ... вар thecats = myCats(); thecats.fetch(); Надеюсь, это поможет кому-то ... – 1ManStartup

ответ

1

Нигде в коде, который вы опубликовали, вы действительно выбрали свою коллекцию с сервера.

Попытка это:

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

var angryCatsView = new AngryCatsView({collection: catCollection}); 
angryCatsView.render(); 
+0

Да, это тот самый код, который я использовал для этого. Благодарю. – 1ManStartup

1

Не уверен, что это сработает для вашей ситуации, но в вашей коллекции добавьте метод анализа, который будет принимать ваши данные. У вас может быть вложенный массив, с которого Backbone не может извлечь внутренние данные.

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

Я хотел бы добавить точку отладки внутри этого метода синтаксического анализа, чтобы увидеть, если данные, передаваемые в гнездятся данные.

+0

Спасибо вам за ответ ... Я пробовал, но не работал. – 1ManStartup

+0

Вы не пробовали код, как написано, не так ли? Вам нужно будет добавить свои собственные данные плюс, но он будет возвращен. В моем приложении ServiceStack возвращает данные, вложенные в другой объект, поэтому мне нужно сделать что-то вроде этого. return data.CoreDataList; Я просто поместил данные [0] как одну идею. Вам нужно будет отлаживать функцию parse, чтобы увидеть, что передается. – Kalpers

+0

Извините за поздний ответ, я читал разные уроки, но не смог разобраться в этом. Я пробовал разбор в обеих сборниках и композитный вид. То, что я пытаюсь сделать, - это спокойный маршрут, подобный этому, http // jsfiddle.net/w3r5B/ – 1ManStartup

0

Проблема была в этом ... var thecats = myCats(); thecats.fetch(); Надеюсь, что это поможет кому-то

 Смежные вопросы

  • Нет связанных вопросов^_^