在ng-admin中创建CustomType会无声地失败

时间:2016-06-07 06:39:55

标签: angularjs custom-type ng-admin

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

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

有什么想法吗?我试图调试,但没有发现任何问题...

1 个答案:

答案 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

顺便说一下,我有同样的问题(无法进行自定义视野)。