ファイルをアップロードするために、ng-admin でカスタム フィールドを定義します。ここのドキュメントを使用します。
リポジトリの admin-config を含めます。
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 コレクションには多くのエントリがあり、各タイプに 1 つずつ、ネイティブの ng-admin タイプには関数ですが、新しく定義されたタイプ (「customfile」) にはオブジェクトであるため、新しい演算子を呼び出してエラーをスローします。その人たちへの解決策はありますか?