0

私はこれを持っています。クリックして、クリックしたデータをbackbone.jsを使って別のコレクションに転送したいのですが可能ですか? 何か案は?

define([
'jquery',
'underscore',
'backbone',
'model/item_model',
'model/cart_model',
'collection/item_collection',
'text!templates/items/itemlist.html'
],function($, _, Backbone, Item, Cart, ItemCollection, ItemListTemplate){

var ItemListView = Backbone.View.extend({
el: $("#mainContainer"),
events:{
    "click div.itemList" : "AddToCart"
},
initialize: function(){
  this.model = Item;
  this.collection = ItemCollection;
  this.collection.bind("reset", this.render );
},
render: function(){
  var data = {
    items: ItemCollection.models,
    item: Item
  }
  var compiledTemplate = _.template( ItemListTemplate , data);
  $("#itemContainer").html( compiledTemplate );
},
AddToCart:function(ev){
    //console.log("here");
    ev.preventDefault();
    var itemcode = $(ev.currentTarget);
    console.log(itemcode);
    //alert($(ev.currentTarget).text());
}
});
return new ItemListView;
 });

クリックイベントが発生しているので、クリックして別のコレクションに転送したいと思います。これは可能ですか?

4

1 に答える 1

1

removeおよびadd関数を使用すると、うまくいくはずです。基本的な例

var c1=new Backbone.Collection([{id:1},{id:2},{id:3}]);
var c2=new Backbone.Collection();
var m=c1.at(1);

c1.remove(m);
c2.add(m);

console.log(c1.pluck("id"));
console.log(c2.pluck("id"));
于 2012-03-27T08:35:08.887 に答える