Отброс: убрать предмет из наблюдаемой коллекции
Учитывая наблюдаемую коллекцию в Knockback, как мне удалить элемент из базовой коллекции в ответ на событие щелчка knockout.js?
1 ответ
Если я прав, я бы сказал, что вы хотите удалить какой-либо элемент из коллекции, нажав кнопку.
Итак, у нас есть представление 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)
}
});
}
});