我想做this jsfiddle example之类的事情,我需要在左面板属性上添加一些自定义属性。下面我尝试做类似但我不能拖动字段
YUI().use('aui-form-builder',function (Y) {
Y.MyFormCustom = Y.Component.create({ NAME:'form-node',
ATTRS: {
type: {
value: 'custom'
},
customAttr: {
validator: Y.Lang.isString,
value: 'A Custom default'
}
},
EXTENDS: Y.FormBuilderFieldBase,
prototype: {
getPropertyModel: function () {
var instance = this;
var model = Y.FormBuilderFieldBase.superclass.getPropertyModel.apply(instance, arguments);
model.push({
attributeName: 'customAttr',
name: 'Custom Attribute'
});
return model;
}
}
});
Y.FormBuilder.types['custom'] = Y.MyFormCustom;
var availableFields = [
{
iconClass: 'form-builder-field-icon-button',
label: 'Button',
type: 'custom'
}
];
myform= new Y.FormBuilder({
availableFields: availableFields,
boundingBox: '#myHolder'
}).render();
我不知道为什么表格没有出现。任何帮助将不胜感激。
答案 0 :(得分:0)
您的示例对我非常有帮助,因为我还需要扩展表单生成器字段。
上述修复很简单。 替换行:
Y.FormBuilder.types['custom'] = Y.MyFormCustom;
通过
Y.FormBuilderField.types['custom'] = Y.MyFormCustom;
此解决方案的灵感来自Alloy UI API中的源代码。 见链接: AlloyUI Form Builder
干杯