该项目使用marionette-rails、backbone-on-rails、select2-rails和这个到 BackboneForms 的端口来提供多选表单字段。选择选项可供用户使用。它们是从包含选项总列表的集合中检索的:
MyApp.module("Products", function(Products, App, Backbone, Marionette, $, _) {
Products.CustomFormView = Products.CustomView.extend({
initialize: function(options) {
this.model.set("type", "Product");
Products.EntryView.prototype.initialize.apply(this, arguments);
},
schemata: function() {
var products = this.collection.byType("Product");
var productTypes = products.map(function(product){
return {
val: product.id,
label: product.get("name")
};
});
return {
productBasics: {
name: {
type: "Text",
title: "Name",
editorAttrs: {
maxLength: 60,
}
},
type: {
type: 'Select2',
title: "Product type",
options: {
values: productTypes,
value: [3, 5],
initSelection: function (element, callback) {
var data = [];
$(element.val().split(",")).each(function () {
data.push({id: this, text: this});
});
callback(data);
}
},
editorAttrs: {
'multiple': 'multiple'
}
}
}
};
}
});
});
我value
是否正确初始化options.value
?怎么initSelection
从来不叫?我从文档中复制了该功能-对于我的情况可能不完整。没有具有 ID 的产品,3
并5
显示为选择。