我试图从menusCollection
中获取productsView
中的数据。我试图在一个骨干视图中从多个抓取的集合中加载数据。所以我真的很挣扎,我会很乐意帮助你。我无法使用lodash从一个骨干视图中的多个集合中获取数据_.template
router.js:
app_router.on('route:products', function() {
var menusCollection = new MenusCollection();
menusCollection.fetch();
var productsCollection = new ProductsCollection();
productsCollection.fetch({
success: function() {
var productsView = new ProductsView({model:productsCollection.models},{menu:menusCollection.models});
productsView.render();
}
});
});
ProductsView.js:
var menusCollection = new MenusCollection();
var products = this.model;
var productsCollection = new ProductsCollection(products);
this.el.innerHTML = _.template(productsTemplate, {data: menusCollection.toJSON()});
然后在productsTemplate我想渲染多个colections,如:
<% _.each(data, function(product, i){ %>
<%= product.product_title %>
<% }) %>
<% _.each(data, function(menu, i){ %>
<%= menu.menu_title %>
<% }) %>
我的模板已加载,但没有收集数据。我怎么才能得到它 ? 非常感谢!
EDITED,它正在工作,但它是在一个视图中处理多个集合的好方法?
router.js:
app_router.on('route:products', function() {
var menusCollection = new MenusCollection();
menusCollection.fetch({
success: function() {
var productsCollection = new ProductsCollection();
productsCollection.fetch({
success: function() {
var productsView = new ProductsView({model:productsCollection.models, collection:menusCollection.models});
productsView.render();
}
});
}
});
});
或类似这样的东西吗?
app_router.on('route:products', function() {
var menusCollection = new MenusCollection();
var productsCollection = new ProductsCollection();
$.when(menusCollection.fetch(), productsCollection.fetch()).done(function() {
var productsView = new ProductsView({model:productsCollection.models, collection:menusCollection.models});
productsView.render();
});
});
ProductsView.js:
var products = this.model;
var menus = this.collection;
var menusCollection = new MenusCollection(menus);
var productsCollection = new ProductsCollection(products);
this.el.innerHTML = _.template(productsTemplate, {data: productsCollection.toJSON(), menus: menusCollection.toJSON()});
productsTemplate
<% _.each(data, function(product, i){ %>
<%= product.product_title %>
<% }) %>
<% _.each(menus, function(menu, i){ %>
<%= menu.menu_title %>
<% }) %>
@muistooshort我已编辑的代码...你的意思是这样的吗?可以在一个视图中呈现三个集合吗?或者它是完全不好的想法?感谢帮助! – Makromat 2015-01-04 18:43:18