Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么不是';我的ExtJS商店协会不工作吗_Extjs_Associations - Fatal编程技术网

为什么不是';我的ExtJS商店协会不工作吗

为什么不是';我的ExtJS商店协会不工作吗,extjs,associations,Extjs,Associations,我有问题。我想使用漂亮的ExtJS关联,但它们不能正常工作 问题: 模型中未显示关联 加载后没有显示数据 需要注意的怪癖是什么?我最近在ExtJS协会经历了一段非常痛苦的学习过程,遇到了一些有用的文章,以及我自己的问题。以下是那些遭遇同样痛苦的人的总结 ExtJS中有许多关联的规则 始终将代理放在模型中,而不是存储中,除非 有很好的理由不这样做[1] 如果需要,请始终要求您的孩子模型 在许多关系中使用它们。[2] 如果要随意加载子项,请始终使用foreignKey 如果返回的子项与父项的响

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

问题:

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

需要注意的怪癖是什么?

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

ExtJS中有许多关联的规则

  • 始终将代理放在模型中,而不是存储中,除非 有很好的理由不这样做[1]
  • 如果需要,请始终要求您的孩子模型 在许多关系中使用它们。[2]
  • 如果要随意加载子项,请始终使用foreignKey
  • 如果返回的子项与父项的响应相同,请始终使用associationKey
  • 如果愿意,可以同时使用foreignKey和associationKey
  • 总是说出你有很多关系
  • 在hasMany关系中始终使用完全限定的模型名称
  • 考虑给读者根目录一个有意义的名称(而不是“数据”)
  • 子模型不需要belongsTo关系,hasMany就可以工作
[1] 存储将继承其模型的代理,您可以随时覆盖它
[2] 为了简化操作并避免潜在的循环引用,您可以在app.js中要求它们

ExtJS中HasOne和BelongsTo关联的规则

  • 将代理放入模型中,除非您有很好的理由不这样做
  • 始终使用完全限定的模型名
  • 始终设置getterName
  • 始终设置setterName
  • 如果在与此对象相同的响应中返回外部对象,则始终设置associationKey
  • 如果要随意加载外部对象,请始终设置foreignKey
  • 考虑将instanceName更改为更短的名称
  • 根据是否加载外部对象,getter的行为会有所不同 或者不是。如果已加载,则返回外部对象。否则,, 您需要传入回调才能获取它
  • 如果计划覆盖此关联,则应设置name属性
  • 你不需要一个属于你的关系,一个有很多工作
  • 如果父模型的id字段不是“id”,则设置primaryKey属性
  • 有时,您需要对belongsTo关联使用uses或requires。监视 尽管如此,我们还是要寻找循环引用
  • 调用setter()函数不会 似乎没有设置实例。设置object.belongsToInstance=obj如果 调用setter()

杂项

  • 如果要将数据应用于网格,请确保使用新存储在网格上调用reconforme()
  • 您的“foreignKey”属性将作为本地筛选器应用于ExtJS存储;如果您看到数据通过网络加载,但是 如果不显示在网格中,请确保您的模型具有foreignKey 值定义为字段,否则本地筛选器将排除该数据 安静。若要测试是否存在这种情况,请钩住商店的“负载” 事件并调用store.clearFilters(),查看数据是否显示

+1 for
需要:[……]
,因为我惊讶地发现这是我的问题。真的很讨厌ExtJs!