使用jquery和backbone js创建动态表单字段

时间:2013-01-30 18:59:17

标签: javascript jquery jquery-ui backbone.js underscore.js

我有一个使用骨干js和jquery的应用程序。我需要根据从服务器获得的响应动态生成模板。场景是这样的...我有一个模板下拉列表,我可以选择,在我从下拉列表中选择任何模板后,为该模板调用api,它为我提供了这样的结构

items:[
{
    "vars":
           {
               "name":
                      {
                           "required": false,
                           "default": "abc"
                      },
               "address":
                      {
                           "required": false,
                           "default": "xyz"
                       }
           }
    "tables": {}
}]

那么如何使用这种服务器响应创建动态表单元素呢?

1 个答案:

答案 0 :(得分:3)

您可以使用backbone-forms插件,并将服务器响应映射到表单对象。类似的东西:

var data = {};
var schema = {};
var item = _.first(items);

_.each(item.vars, function(value, key) {
  data[key] = value.default;
  schema[key] = {
    type:"Text",
    validators:value.required ? ['required'] : undefined
  };
});

var form = new Backbone.Form({data:data, schema:schema}).render();

这只是一个简单的,未经测试的例子。查看backbone-forms文档,看看它是否可以满足您的需求。