【问题标题】:Extjs 5 REST Many-to-ManyExtjs 5 REST 多对多
【发布时间】:2015-09-26 12:41:04
【问题描述】:

为我的数据结构构建了一个rest api之后,我想将它实现到Extjs中。在阅读了here 的文档并在 stackoverflow 和 google 上进行搜索后,我在设置时仍然遇到错误。

我有一条如下所示的休息路线:

/api/products/:id

每个产品都有一个类别的集合,可以使用

/api/products/3/categories.

像这样为产品创建模型后:

Ext.define('Product', {
    extend: 'Ext.data.Model',
    fields: [
        'id',
        'and all the other properties here...'
    ],

    proxy: {
        type: 'rest',
        url : '/api/products'
    }
});

当然也对类别做同样的事情,除了路线

/api/categories/:id

这些模型本身就可以工作。我可以轻松创建、更新、读取和删除产品或类别。

接下来我尝试建立关联以正确链接它们。我尝试了一些事情,但都没有成功:

  1. link 这样应用配置
  2. 像另一个 link 所说的那样应用配置
  3. 创建一个自己的自定义代理,如 here 解释的那样

结果要么什么都不做,要么创建一个没有模型的空关联存储。我不知道我做错了什么,而且谷歌上的大多数信息都已经过时了。请帮忙!

提前致谢

【问题讨论】:

  • 如果您的类别模型代理的 url 是 /api/categories,您怎么能期望从 /api/products/3/categories 加载产品的猫?
  • @DrakeES 原始类别模型应该能够在没有产品的情况下使用(类别的 CRUD 操作)。但是,由于我使用 REST 代理和关联,当我尝试加载 id 为 3 的产品类别时,我想获得一个生成 url /api/products/3/categories 的链接。知道该怎么做这个,或者更好的方法来完成这个?

标签: javascript rest extjs associations


【解决方案1】:

所以http://docs.sencha.com/extjs/5.1/5.1.0-apidocs/#!/api/Ext.data.proxy.Rest 的文档是这样说的:

如果需要进一步自定义,只需实现 buildUrl 方法并将自定义生成的 url 添加到传递给 buildUrl 的 Request 对象中。有关如何实现这一点的示例,请参阅 Rest 代理的实现。

我要做的是在您的开发工具中为 XHR 请求设置一个 XHR 断点,该请求是在您为产品加载类别时发出的,并查看它通过哪些方法来构建 URL。 然后我会从那里去看看哪里需要定制。

【讨论】:

    猜你喜欢
    • 2015-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多