0

我正在尝试编写自定义类型来创建级联下拉列表。我从定义一个新的自定义类型扩展引用类型开始。问题是,无论我在类主体中写什么,组件都不会毫无错误地显示出来。这是新的字段类:

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'));
}]);

任何想法?我尝试调试但没有发现任何问题...

4

1 回答 1

0

使用 require 的 nga.registerFieldType 可能会生成“CascadeParentField”不是构造函数的异常,因此您应该改为导入:

import CascadeParentField from './types/CascadeParentField.js';
...
myApp.config(['NgAdminConfigurationProvider', 'FieldViewConfigurationProvider', function (nga, fvp) {
nga.registerFieldType('cascade_parent', AmountType);
...
}

除此之外,我的猜测是文档目前已损坏,因为那里没有说明,但我在另一篇 SO 帖子中找到了它:

ng-admin 无法识别自定义字段视图

顺便说一句,我有同样的问题(无法进行自定义字段视图)。

于 2016-08-08T18:35:01.943 回答