Javascript 主干形成奇怪的错误/行为

Javascript 主干形成奇怪的错误/行为,javascript,forms,backbone.js,backbone-forms,Javascript,Forms,Backbone.js,Backbone Forms,简介: 我编写自定义主干编辑器,但主干无法初始化它,因为找不到它的模式。主干在Backbone-forms.js的Form.editors数组中查找架构?如何注册自定义编辑器的架构 详细说明: 我使用主干表单,这些表单以下一种方式初始化: backbone-forms.js 并且Form.editors[schema.type]未定义。这意味着我无法创建/渲染自定义编辑器 问题:在Form.editors数组中注册自定义编辑器的位置/方式?您可以直接从架构中引用自定义编辑器,即引用函数本身而不是

简介:

我编写自定义主干编辑器,但主干无法初始化它,因为找不到它的模式。主干在Backbone-forms.js的Form.editors数组中查找架构?如何注册自定义编辑器的架构

详细说明:

我使用主干表单,这些表单以下一种方式初始化:

backbone-forms.js

并且Form.editors[schema.type]未定义。这意味着我无法创建/渲染自定义编辑器


问题:在Form.editors数组中注册自定义编辑器的位置/方式?

您可以直接从架构中引用自定义编辑器,即引用函数本身而不是字符串:

var CustomEditor = Backbone.Form.editors.Base.extend({});

var form = new Backbone.Form({
  schema: {
    customField: { type: CustomEditor }
  }
});

或者,如您所发现的,您还可以将编辑器添加到Backbone.Form.editors,以便将字符串用作快捷方式。

为什么不直接在对象内部添加编辑器,而不是在extend的第二个参数中提供哈希值?你试过了吗?@queval_j我通过添加Backbone.Form.editors.MyCustomEditor=MyCustomEditor修复了这个问题;
  createSchema: function(schema) {
    //........

    //PROBLEM: Form.editors[schema.type] is undefined
    schema.type = (_.isString(schema.type)) ? Form.editors[schema.type] : schema.type;

    return schema;
  }
var CustomEditor = Backbone.Form.editors.Base.extend({});

var form = new Backbone.Form({
  schema: {
    customField: { type: CustomEditor }
  }
});