我有一个使用 Backbone 渲染的多选下拉菜单。当用户选择或取消选择选项时,我希望这些(取消)选择通过 Backbone 异步保存。
我找到了Backbone.Picky,并认为它可能对我的努力有所帮助,但我似乎无法让它检测选择。
在下面我FieldView
的clicked
函数中,console.log(this.model.selected);
总是将undefined写入日志。为什么?
var Field = Backbone.Model.extend({
initialize: function(){
var selectable = new Backbone.Picky.Selectable(this);
_.extend(this, selectable);
}
});
var FieldView = Backbone.View.extend({
tagName: "option",
initialize: function(){
_.bindAll(this, 'render');
},
events: {
"click":"clicked"
},
clicked: function(e) {
var data_type = this.model.get("DATA_TYPE");
console.log(this.model.selected); // why is this undefined?
console.log("it's a " + data_type);
},
render: function(){
this.$el.attr('value', this.model.get('COLUMN_NAME')).html(this.model.get('display_name'));
return this;
}
});
这是一个 jsfiddle http://jsfiddle.net/EAZCt/2/以获得更多上下文。
使用 Backbone,如何将选项的选择状态异步保存在多选列表中?