Ошибка: C2008: у требования не было подходящих файлов (ExtReactModels.model.Item) в ExtReact

Итак, я пытаюсь соединить модели, используя схему и пространство имен, но получаю эту ошибку: "Ошибка: C2008: у требования не было подходящих файлов (ExtReactModels.model.Item)". Это сделано в ExtReact. Должен ли я даже объявить схему и пространство имен или просто импортировать обычные объекты? Наиболее важные части кода:

  1. RootTypeModel:

export default Ext.define("ExtReactModels.model.RootType", {
 extend: 'Ext.data.Model',
 schema: {
  namespace: 'ExtReactModels.model'
 },
 requires: [
  'Ext.data.proxy.Rest', 'ExtReactModels.model.Item'
 ],
 idProperty: 'rootTypeId',
 fields: [
  /* ... */
 ],
 proxy: {
  type: 'rest',
  url: '/rootTypes'
 },
 hasOne: [{
  model: 'ExtReactModels.model.Item', name: 'item', associationKey: ">item", instanceName:"item",
  getterName: "getItem", setterName: "setItem"
 }]
});

  1. ItemModel:

export default Ext.define("ExtReactModels.model.Item", {
 extend: 'Ext.data.Model',
 schema: {
  namespace: 'ExtReactModels.model'
 }
 requires: [
  'Ext.data.proxy.Rest'
 ],
 idProperty: 'itemId',
 fields: [
  /* ... */  
 ],
 proxy: {
  type: 'rest',
  url: '/items'
 },
 hasOne: [{
  model: 'ExtReactModels.model.Application', name: 'application', associationKey: ">application", instanceName:"application",
  getterName: "getApplication", setterName: "setApplication"
 }]
});

1 ответ

Решение

Поэтому я исправил это с помощью обычного объекта, который я импортировал для Item, а также я определил отдельный const, который будет содержать определение схемы и пространства имен и который будет повторяться в отдельных моделях, и теперь я могу использовать это определение в разных моделях.:

import itemModel from './ItemModel';
import {baseModel} from './BaseModel';

export default Ext.define("ExtReactModels.model.RootType", {
 extend: 'Ext.data.Model',
 baseModel,
 requires: [
  'Ext.data.proxy.Rest'
 ],
 idProperty: 'rootTypeId',
 fields: [
  /* ... */
 ],
 proxy: {
  type: 'rest',
  url: '/rootTypes'
 },
 hasOne: [{
  model: itemModel, name: 'item', associationKey: ">item", instanceName:"item",
  getterName: "getItem", setterName: "setItem"
 }]
});

Если кто-то нашел другой способ для этого, пожалуйста, дайте мне знать!

Другие вопросы по тегам