点击模型并添加到主干中的其他集合中
get clicked model and add to other collection in backbone
我需要点击ItemCollection上的项目并将其转移到CartCollection。但我无法让它发挥作用。我需要得到用户点击的currentTarget的模型。有什么想法吗?我评论了一个CartCollection.add只是为了测试它。
define([
'jquery',
'underscore',
'backbone',
'model/item_model',
'model/cart_model',
'collection/item_collection',
'collection/cart_collection',
'view/cart/cartlist_view',
'text!templates/items/itemlist.html'
],function($, _, Backbone, Item, Cart, ItemCollection, CartCollection, CartListView, ItemListTemplate){
var ItemListView = Backbone.View.extend({
el: $("#mainContainer"),
events:{
"click #itemListContainer li" : "AddToCart"
},
initialize: function(){
this.model = Item;
this.collection = ItemCollection;
this.collection.bind("reset", this.render );
CartCollection.bind("add", CartListView.render());
},
render: function(){
var data = {
items: ItemCollection.models,
item: Item
}
var compiledTemplate = _.template( ItemListTemplate , data);
$("#itemContainer").html( compiledTemplate );
},
AddToCart:function(ev){
ev.preventDefault();
// CartCollection.add([
// {ItemCode:"item-12312",ItemDescription:"OldSomething",RetailPrice:"2",Qty:"1"},
// {ItemCode:"item-12122",ItemDescription:"OldSometh21g",RetailPrice:"4",Qty:"2"}
// ]);
// var code = $(ev.currentTarget).data("ItemCode");
// var test = CartCollection.get(code);
// var name = test.get("ItemDescription");
CartListView.render();
alert($(ev.currentTarget).text());
}
});
return new ItemListView;
});
Alt A:为持有模型的每个子项创建一个视图
当呈现图表项时,您可以将其添加到子视图中,在子视图中传递模型和回调。当每个子视图被点击时,回调都会被调用:
ItemView({
model: item,
onAdd: this.AddToCart
});
在子视图中:
events: {
"click": "onClick"
},
onClick: function(){
this.options.onAdd(this.model);
}
在父视图中:
AddToCart: function(model){
//Do what you what you want with the item
}
Alt B:将模型id添加到li
项目并从项目集合中获取
<li><a href="#" data-id="<%=item.id%>">An item</a></li>
然后从项目集合中获取模型:
var id = $(e.currentTarget).data("id");
var item = items.get(id);
相关文章:
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- 如何添加浮动和非浮动,其他
- 与其他库的jQuery.noConflict()
- 播放当前视频时如何停止其他视频?JavaScript
- 剑道UI内联编辑:如何在点击其他按钮时隐藏按钮
- 转到其他 URL 后,如何保持排序的骨干.js集合
- 如何将外部 API 中的其他数据添加到集合中的现有模型
- 主干.js:如何在集合/其他模型中实例化模型
- MongoDB使用Map Reduce插入来自其他集合的嵌入式文档
- 点击模型并添加到主干中的其他集合中
- 根据日期和其他字段聚合Mongo集合中的数据,并进行计数
- 将用户发布到其他集合时出现问题
- 如何确保某个集合中的数据先于其他数据到达?
- 在流星中呈现之前,如何解析对其他集合中db记录的引用
- 如何使用mongoose将一个集合的id's添加到其他集合的id数组中
- 结合2 MongoDB集合对象下划线或其他东西
- 从Mongoose find方法中的其他集合中获取数据
- 可以'在Meteor生产数据库中找不到用户和其他集合
- 根据其他集合的查询更新文档
- 在router的初始化函数中加载一个集合,防止其他函数求值