Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 击退:从可观察的集合中移除项_Backbone.js_Knockback.js - Fatal编程技术网

Backbone.js 击退:从可观察的集合中移除项

Backbone.js 击退:从可观察的集合中移除项,backbone.js,knockback.js,Backbone.js,Knockback.js,给定knockout.js click事件中的可观察集合,如何从基础集合中删除项目?如果我是对的,a会说您希望通过单击按钮从集合中删除某些项目 因此,我们有kb视图: var viewModel = kb.ViewModel.extend({ constructor: function(model, options) { var self = this this.delete= function(){ self.coll.delete(

给定knockout.js click事件中的可观察集合,如何从基础集合中删除项目?

如果我是对的,a会说您希望通过单击按钮从集合中删除某些项目

因此,我们有kb视图:

  var viewModel = kb.ViewModel.extend({
    constructor: function(model, options) {
      var self = this 
      this.delete= function(){

          self.coll.delete(self) 
      }
      this.coll = options.coll
      this.name = kb.Observable(model, {key: 'name'})

    }
});

var yourCollection = new Backbone.Collection(); 
var yourModel = new  Backbone.Model({name: 'Stefan'}); 
var yourKBView = new viewModel (yourModel, {coll: yourCollection}); 
这是存储一些嵌套信息的简单方法

如果将模型添加到集合中时自动执行此操作,则可以像这样覆盖视图的创建功能

   var collectionViewModel = kb.ViewModel.extend({
        constructor: function(collection, options) {
             var self = this
             this.coll= kb.collectionObservable(collection, {
              /**
               * Calls by adding a model to the collcetion
               * @param model - 
               * @param options -
               *
               */
            create: function(model, options){
              var options =  options || {}
              options.coll = self       
              return new viewModel(model,options)
            }
        });
  }
});