Нажмите и перейдите в другую коллекцию в Backbone.js - PullRequest
0 голосов
/ 27 марта 2012

У меня есть это. Я хочу щелкнуть и перенести данные, по которым щелкнули, в другую коллекцию, используя 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;
 });

Так что, так как у меня срабатывает событие click, я хочу щелкнуть и перенести его в другую коллекцию. это возможно?

1 Ответ

1 голос
/ 27 марта 2012

Использование функций 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"));
...