1

先说明一下我的情况:

我有里面有数组字段的模型

Ext.define('MyModel',{
  extend: 'Ext.data.Model',
  fields: [
    { name: 'myfield', type: 'array' }
  ]
})

像这样的内容数据

data = Ext.create('MyModel',{
  myfield: [ 'one', 'two', 'three', 'four' ]
})

我想扩展Ext.form.field.Base创建将该数组视为待办事项列表并在其内部包含项目的字段(Ext.form.field.Trigger添加“待办事项”并Ext.ListView显示“待办事项”)。

我不知道制作Ext.form.field.Base包含物品有多困难,是否有更好的可能解决方案。

字段必须打开数组并在表单上loadRecord()提供它。getRecord()

我看到的其他可能的解决方案:

1) 仅使用 html-template 和 vanilla-javascript 制作字段(不好,因为为什么要实现 ExtJS 中已经存在的东西)

2)模型关系(不好,因为我必须为每个相关模型实现“创建、更新和删除”并手动加载它们)

感谢您的阅读,欢迎任何想法!

4

1 回答 1

1

与您的问题没有直接关系,但“数组”不是 Ext.data.Field 的有效字段类型。使用“自动”不进行数据转换,或者只是不分配类型。

回复:自定义的、复杂的表单字段,ExtJS 肯定是可能的,创建触发器字段的扩展绝对是您想要做的。这是处理复杂数据的自定义触发器字段的示例:http: //existdissolve.com/2012/12/extjs-4-custom-editor-for-property-grid/。该示例适用于自定义属性网格,但任何自定义表单字段的原理都是相同的。

自定义字段中最重要的部分将是createPicker()方法的实现以及您为设置基础字段的值定义的任何机制。

希望这能给你一个很好的起点。

于 2013-05-29T11:22:23.697 回答