【问题标题】:why I can't use short name of store in ExtJs?为什么我不能在 ExtJs 中使用商店的简称?
【发布时间】:2015-10-18 08:22:25
【问题描述】:

我使用 ExtJs 6.0.0 和 Sencha Cmd 6.0.2 并使用 MVC 架构,我有一个由 Sencha Cmd 生成的简单应用程序,如下所示:

// MyApp/store/Personnel.js

Ext.define('MyApp.store.Personnel', {
  extend: 'Ext.data.Store',

  alias: 'store.personnel',


  fields: [
    'name', 'email', 'phone'
  ],

  data: {
    items: [{
      name: 'Jean Luc',
      email: "jeanluc.picard@enterprise.com",
      phone: "555-111-1111"
    }]
  },

  proxy: {
    type: 'memory',
    reader: {
      type: 'json',
      rootProperty: 'items'
    }
  }
});

// MyApp/app/view/main/List.js

Ext.define('MyApp.view.main.List', {
  extend: 'Ext.grid.Panel',
  xtype: 'mainlist',

  requires: [
    'MyApp.store.Personnel'
  ],

  title: 'Personnel',

  store: 'Personnel',
  //store: {
  //    type: 'personnel'
  //},

  columns: [{
    text: 'Name',
    dataIndex: 'name'
  }, {
    text: 'Email',
    dataIndex: 'email',
    flex: 1
  }, {
    text: 'Phone',
    dataIndex: 'phone',
    flex: 1
  }],

  listeners: {
    select: 'onItemSelected'
  }
});

// MyApp/app/Application.js

Ext.define('MyApp.Application', {
    extend: 'Ext.app.Application',
    
    name: 'MyApp',

    stores: [
        // TODO: add global / shared stores here
        'Personnel'
    ]  
});

是的,我想在 List 的视图中使用 Personnel 商店的短名称(只有 Classname 没有 Namespace),但它不起作用。 但是在Ticket App中(Sencha官方推荐的例子也在SDK中)这样使用并且可以正常工作,为什么我的不能正常工作? app.json 看起来一样。

【问题讨论】:

  • 尝试在 Application.js 中填写它说要添加全局/共享存储的那一行...
  • 对不起,它在那里而且应该在那里,我只是在上面的帖子中有一个错误......
  • “它不起作用”是什么意思?有什么错误吗?如果您在网格中看不到数据,请尝试从数据中删除项目并将对象直接放入数据数组中。本地数据不使用代理。您的代码应该可以在没有任何商店 ID 的情况下工作。
  • 没有错误,只是没有渲染 TreeNode 或 Grid 内容。
  • 如果我使用完整的商店名称(MyApp.model.Personnel)或 storeId,它可以正常工作。

标签: javascript extjs extjs6


【解决方案1】:

store: 'foo' 表示 ID 为 foo 的商店。该商店必须已经创建了一个实例。

您应该使用您在此处注释掉的type 语法。

【讨论】:

  • 也许你是对的,我使用了带有商店定义的 storeId,它工作得很好。但是除了我的问题中的某些内容之外,我没有从 Sencha 官方的商店定义示例中找到任何其他内容,而且它也可以正常工作。
猜你喜欢
  • 2012-11-07
  • 1970-01-01
  • 2013-01-19
  • 2020-05-25
  • 2012-08-11
  • 2017-01-30
  • 2016-02-28
  • 1970-01-01
  • 2019-10-22
相关资源
最近更新 更多