简短的:
我编写了我的自定义主干编辑器,但 Backbone 无法初始化它,因为找不到它的架构。Backbone 在Form.editors
数组中查找模式backbone-forms.js
?如何注册自定义编辑器的架构?
详细的:
我使用以下方式初始化的主干表单:
骨干-forms.js
var Form = Backbone.View.extend({
initialize: function(options) {
//.....
//Check which fields will be included (defaults to all)
var selectedFields = this.selectedFields = options.fields || _.keys(schema);
_.each(selectedFields, function(key) {
var fieldSchema = schema[key];
fields[key] = this.createField(key, fieldSchema); // <==== Here troubles begins
}, this);
},
//....
}, {
//....
editors: {} // <===== QUESTION: where I should put my custom editor in this array???
});
问题:当 Backbone 创建新表单时,它会调用createSchema
如下所示的方法:
createSchema: function(schema) {
//........
//PROBLEM: Form.editors[schema.type] is undefined
schema.type = (_.isString(schema.type)) ? Form.editors[schema.type] : schema.type;
return schema;
}
并且Form.editors[schema.type] 是 undefined。这意味着我无法创建/渲染我的自定义编辑器!
问题:在哪里/如何在 数组中注册我的自定义编辑器?Form.editors