这是jsfiddle,我使用了几乎相同的小提琴My Fiddle with Ajax,这里是Matt的Stickit MultiSelect Select2 with an array但是在select配置中添加了ajax属性 .

单击结果,模型将未定义的属性设置为模型 console.log(this.model.attributes) 结果朋友:[1,2,undefined] .

change事件只调用getVal函数,它返回一个未定义的值`getVal:function($ el){var selected = $ el.find('option:selected');

if ($el.prop('multiple')) {
    return _.map(selected, function(el) {
      **return Backbone.$(el).data('stickit-bind-val');**
    });
  } else {
    return selected.data('stickit-bind-val');
  }
}`

我认为与添加选项的更新功能不同,单击结果不会添加选项或调用addSelectOptions函数 .

但是当使用 getVal:function($el,event,options){return $el.val(val);} 时只返回值[1,2,4] . 但是如果我有一个嵌套的集合,它只返回值而不是整个对象 .

需要从AJAX呼叫返回的整个对象并将其设置为选择时的模型属性 .