0

我在 ng-admin 上定义了一个自定义字段来上传文件。我在这里使用文档。

我包括存储库管理员配置。

如下定义我的 CustomeFileField:

import Field from "./admin-config/lib/Field/Field.js";

class CustomFileField extends Field {
    constructor(name) {
        super(name);
        this._type = 'customfile';
        this._id = undefined; 
        this._entity_field = undefined;
        this._upload_information = {};
}

uploadInformation(baseUrl) {
    if(!argument.length) return this._upload_information;
    if(typeof this._id === 'undefined') {
        throw new Error('You must provide a valid id for the entity');
    }
    this._upload_information = { 
                'url': baseUrl + 'fr/media/upload?ref_id='+ this._id +'&ref=OpnRecipeBundle\\Entity\\Recipe', 
                 'apifilename': 'files' 
    };
    return this; 
}

// value of the entity id
id(value) {
    if(!argument.length) return this._id;
    this._id = value;
    return this;
}
//name of the field in the entity id
entityField(value) {
    if(!argument.length) return this._entity_field;
    this._entity_field = value;
    return this;
    }
}
export default CustomFileField;

我根据文档定义了相应的视图。

我用当前注册两个:

nga.registerFieldType('customfile', require('./CustomFileField.js'));
fvp.registerFieldView('customfile', require('./CustomFileFieldView.js')); 

然后我将我的新定义类型称为:

nga.field('itsname','customfile');

尽管如此,在正确转换所有内容后,我还是遇到了当前错误:

错误:[$injector:modulerr] 无法实例化模块 opnAdmin 由于:this._fieldTypes[t] 不是构造函数

仔细记录事物时,字段 typeTypes 集合似乎有许多条目,每种类型一个,对于本机 ng-admin 类型,它是一个函数,但对于我的新定义类型('customfile'),它是一个对象,因此取消新的运算符会抛出错误。那些人有什么解决办法吗?

4

1 回答 1

0

使用 require('CustomField.js') 返回一个对象,如果我们使用 import CustomField from 'CustomField.js' 代替它返回一个函数并且它可以工作。

于 2016-04-06T14:30:16.607 回答