You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ExtJS 5.1 Store加载出现404 Model未找到错误的解决咨询

解决ExtJS 5.1中Store引发的"404 model not found"错误

以下是针对你遇到问题的具体解决方案:

  • 确保Store明确关联正确的Model
    检查Store配置,必须通过完整命名空间指定model属性,ExtJS 5.x不会自动推断未带命名空间的Model类,示例:

    Ext.define('MyApp.store.TestStore', {
        extend: 'Ext.data.Store',
        model: 'MyApp.model.TestModel', // 完整命名空间的Model类
        proxy: {
            type: 'ajax',
            url: '/api/test',
            reader: {
                type: 'json',
                rootProperty: 'data'
            }
        }
    });
    

    不要仅写model: 'TestModel',否则ExtJS会尝试加载不存在的文件路径,触发404错误。

  • 验证Model的定义与路径配置
    确认Model已正确定义,且所在路径被应用配置识别:

    1. Model文件需放在对应命名空间的目录下,比如MyApp.model.TestModel对应app/model/TestModel.js
    2. 在app.json中配置正确的路径映射:
      "paths": {
          "MyApp": "app"
      }
      
    3. Model定义需符合规范:
      Ext.define('MyApp.model.TestModel', {
          extend: 'Ext.data.Model',
          fields: [
              {name: 'id', type: 'int'},
              {name: 'name', type: 'string'}
          ]
      });
      
  • 动态操作Store时不要省略Model配置
    调用setStore或Ext.create创建Store实例时,必须明确指定model属性,避免ExtJS尝试动态加载未定义的Model:

    // 错误写法:无Model配置会触发404
    var badStore = Ext.create('Ext.data.Store', {
        proxy: {type: 'ajax', url: '/api/test'}
    });
    // 正确写法:明确关联Model
    var goodStore = Ext.create('Ext.data.Store', {
        model: 'MyApp.model.TestModel',
        proxy: {type: 'ajax', url: '/api/test'}
    });
    combo.setStore(goodStore);
    
  • 修复Memory代理无法加载数据的问题
    Memory代理不需要远程请求,需直接为Store提供数据,通过data配置或loadData方法:

    // 静态配置数据
    Ext.define('MyApp.store.TestMemoryStore', {
        extend: 'Ext.data.Store',
        model: 'MyApp.model.TestModel',
        proxy: {type: 'memory', reader: {type: 'json'}},
        data: [
            {id: 1, name: '选项1'},
            {id: 2, name: '选项2'}
        ]
    });
    // 动态加载数据
    store.loadData([{id: 3, name: '选项3'}]);
    
  • 检查Ext.Loader配置
    确保加载器已启用并配置正确路径,在应用入口添加:

    Ext.Loader.setConfig({
        enabled: true,
        paths: {
            'MyApp': 'app'
        }
    });
    

    禁用Loader会导致ExtJS无法正确解析类路径,引发404错误。

内容的提问来源于stack exchange,提问作者ian viñales

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 11:47:27