Создание CustomType в 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'));
}]);

Любая идея? Я пытался отладить, но не обнаружил никаких проблем ...


person deck80    schedule 07.06.2016    source источник


Ответы (1)


Nga.registerFieldType с использованием require, вероятно, сгенерирует исключение, что CascadeParentField не является конструктором, поэтому вместо этого вам следует выполнить импорт:

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

Кроме того, я предполагаю, что документация в настоящее время нарушена, поскольку этого там не указано, но я нашел ее в другом сообщении SO:

ng-admin не распознает пользовательское представление поля

И, кстати, у меня такая же проблема (я не могу создать настраиваемое поле).

person Boris    schedule 08.08.2016