我正在尝试编写自定义类型来创建级联下拉列表。 我首先定义一个新的自定义类型扩展引用类型。 问题是,无论我在类体内写什么,组件都不会显示没有错误。 这是新的字段类:
import ReferenceField from "admin-config/lib/Field/ReferenceField";
class CascadeParentField extends ReferenceField {
constructor(name) {
super(name);
this._type = 'cascade_parent';
this._cascadeReference = null;
}
}
export default CascadeParentField;
和配对的FieldView类:
export default {
getReadWidget: () => '<ma-reference-column field="::field" value="::value" datastore="::datastore"></ma-reference-column>',
getLinkWidget: () => '<ma-reference-link-column entry="::entry" field="::field" value="::value" datastore="::datastore"></ma-reference-link-column>',
getFilterWidget: () => '<ma-reference-field field="::field" value="value" datastore="::datastore"></ma-reference-field>',
getWriteWidget: () => '<ma-reference-field field="::field" value="value" datastore="::datastore"></ma-reference-field>'
};
在main.js中:
myApp.config(['NgAdminConfigurationProvider', 'FieldViewConfigurationProvider', function(nga, fvp) {
nga.registerFieldType('cascade_parent', require('./types/CascadeParentField'));
fvp.registerFieldView('cascade_parent', require('./types/CascadeParentFieldView'));
}]);
有什么想法吗?我试图调试,但没有发现任何问题...
答案 0 :(得分:0)
使用require的nga.registerFieldType可能会生成“CascadeParentField&#39;不是构造函数,所以你应该改为导入:
import CascadeParentField from './types/CascadeParentField.js';
...
myApp.config(['NgAdminConfigurationProvider', 'FieldViewConfigurationProvider', function (nga, fvp) {
nga.registerFieldType('cascade_parent', AmountType);
...
}
除此之外,我的猜测是文档目前已被破坏,因为那里没有说明,但我在另一篇SO帖子中找到了它:
ng-admin does not recognize custom field view
顺便说一下,我有同样的问题(无法进行自定义视野)。