extjs - 为什么我的 ExtJS 商店协会不工作

标签 extjs associations

我有问题。我想使用漂亮的 ExtJS 关联,但它们无法正常工作。

问题:

  • 模型中没有显示关联
  • 加载后无数据显示

  • 有哪些需要注意的怪癖?

    最佳答案

    我最近在 ExtJS 协会中经历了一段非常痛苦的学习曲线,并遇到了一些有用的文章,以及我自己的问题。这是那些遇到同样痛苦的人的总结。

    ExtJS 中 HasMany 关联的规则

  • 始终将您的代理放在您的模型中,而不是您的商店中,除非您
    有充分的理由不 [1]
  • 总是需要你的 child 模型,如果
    在 hasMany 关系中使用它们。 [2]
  • 如果您想随意加载子项,请始终使用外键
  • 如果您在与父级相同的响应中返回子级
  • ,请始终使用 associationKey
  • 如果您愿意,可以同时使用外键和关联键
  • 始终命名您的 hasMany 关系
  • 在您的 hasMany 关系中始终使用完全限定的模型名称
  • 考虑给读者根一个有意义的名字(除了“数据”)
  • 子模型不需要belongsTo 关系来使hasMany 工作

  • [1] store 将继承其模型的代理,您可以随时覆盖它
    [2] 为了简化并避免潜在的循环引用,您可以在 app.js 中引入它们

    http://extjs-tutorials.blogspot.com/2012/05/extjs-hasmany-relationships-rules.html

    ExtJS 中 HasOne 和 BelongsTo 关联的规则
  • 将代理放在模型中,除非您有充分的理由不这样做
  • 始终使用完全限定的型号名称
  • 始终设置 getterName
  • 始终设置 setterName
  • 始终设置associationKey,如果在与此对象相同的响应中返回外部对象
  • 总是设置foreignKey,如果你想随意加载异物
  • 考虑将 instanceName 更改为较短的内容
  • getter 的行为取决于是否加载了异物
    或不。如果已加载,则返回外来对象。除此以外,
    你需要传入一个回调来获取它。
  • 如果您计划覆盖此关联,则应设置 name 属性。
  • 您不需要belongsTo 关系即可使hasMany 工作
  • 如果父模型的 id 字段不是“id”,则设置 primaryKey 属性
  • 有时,您需要对belongsTo 关联使用uses 或requires。 watch
    循环引用虽然。
  • 调用 setter() 函数
    似乎没有设置实例。设置 object.belongsToInstance = obj if
    调用 setter()。

  • http://extjs-tutorials.blogspot.com/2012/05/extjs-belongsto-association-rules.html

    其他
  • 如果您要将数据应用到网格,请确保使用新存储在网格上调用 reconfigure()
  • 您的“foreignKey”属性将作为本地过滤器应用于 ExtJS 存储;如果您看到数据通过网络加载,但是
    未显示在您的网格中,请确保您的模型具有外键
    定义为字段的值,否则本地过滤器将排除数据
    安静。要测试是否是这种情况,请挂入商店的“负载”
    事件并调用 store.clearFilters(),然后查看您的数据是否显示
  • 关于extjs - 为什么我的 ExtJS 商店协会不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13457470/

    相关文章:

    extjs - 如何迭代 ExtJS 应用程序中定义的所有类

    sencha-touch - 当用户滚动到列表末尾时如何更新 Sencha Touch List

    sencha-touch - 为什么我应该使用Ext.dispatch而不是直接调用 Controller 代码?

    uml - 组件-子组件关系还是泛化关系?在组件图 UML 中

    r - 如何从R中的关联规则中删除大括号和 '' =>“符号

    ruby-on-rails - 如何加入具有 Active Record 中范围的 has_many 关联?

    ruby-on-rails - 使用 Ruby on Rails 3 的命名空间中的关联错误

    extjs - extjs的安全问题

    ruby-on-rails - 在 has_many 关联上 find_or_initialize_by 导致重复错误

    javascript - 禁用 Extjs 表单验证标注