【问题标题】:ember adapter pass idember 适配器通行证 ID
【发布时间】:2017-08-18 16:14:18
【问题描述】:

我希望能够在使用 ember 数据时将 id 传递给休息点。我的端点看起来像 v3/enterprise/inventory/items/{id}/links。我想在发出诸如 this.store.findAll('each-item-links', { id: itemId }) 之类的请求时注入 id。但是,它不起作用。我扩展了 Ember REST 适配器并覆盖了命名空间,但似乎没有任何效果。

【问题讨论】:

    标签: javascript rest ember.js ember-data


    【解决方案1】:

    如果您尝试通过 Ember Data 请求单个记录,那么您希望使用 findRecord 而不是 findAll

    此外,如果您需要控制 URL 的构建方式(您在那里的内容看起来可能不会太干净地映射到 RESTAdapter),您可以覆盖 _buildURL 方法来更改请求的 URL送至。它的 ID 来自 findRecord,因此您可以生成任何您想要的 URL。从技术上讲,这是“私有 API”,但我不会太担心会覆盖它。

    编辑:为避免使用私有API,也可以使用a public buildURL method

    【讨论】:

    • 他们没有提到任何关于 buidURL 是私有的还是公共的。我很困惑是不是私人的? emberjs.com/api/ember-data/2.14/classes/DS.RESTAdapter/methods/…
    • 嗯,我想它不再是私人的了。我可能一直在查看使用 _buildURL 的稍旧版本的 Ember Data 的文档;它是公开的这一事实更有理由使用它来自定义您的 URL。
    • 但是文档并没有像他们对其他方法所做的那样将其称为public
    • 文档默认显示公共方法。您还可以标记一个复选框以查看私有 API;如果你这样做,你可以看到_buildRL 方法在那里(我最初建议的). buildURL` 是公开的。
    猜你喜欢
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多