javascript - 通过 DS.store 方法请求特定的嵌套 url

标签 javascript ember.js

我的 route 有以下代码:

  model(params) {
    return this.store.findRecord('user', params.id)
  }

以及预期的情况,它要求:

/users/{somethingId}

但是我在外部 api 中的路由是嵌套的,看起来像:

/partners/{somethingId}/users

因此,我需要提出如下请求:

/partners/{somethingId}/users/partners/{somethingId}/users/{userId}

我尝试过 Ember 的人际关系,但没有帮助我。我得到了带有参数的网址:

return this.store.findRecord('partner', params.id, {include:'users'});
// api/partners/5?include=users

我还尝试了方法store.adapterFor,它在每个请求之前立即更改我的适配器的命名空间:

this.store.adapterFor('application').set('namespace', '/api/partners/' + params.id);

但是在每个请求之前一直做这个事情会很脏,所以我不想这样做。

我知道我可以使用像 ajax-ember 这样的东西,但我想将 DS.store 与适配器一起使用。任何帮助将不胜感激。

最佳答案

您需要为user模型创建适配器并覆盖urlForFindRecord

应用程序/适配器/user.js

import DS from 'ember-data';

export default DS.JSONAPIAdapter.extend({
  urlForFindRecord(id, modelName, snapshot) {
    let baseUrl = this.buildURL();
    return `${baseUrl}/partners/${id}/users`;
  }
});

关于javascript - 通过 DS.store 方法请求特定的嵌套 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42353582/

相关文章:

javascript - 为什么 Strophe.js 没有抛出错误?

javascript - 在小数点 Angular ui 网格对齐数字

javascript - 如何在 Android 上使用 Javascript Core (JSC)?

javascript - 没有 jQuery 的模态对话框

ember.js - ember-cli 中 makeBoundHelper 和 registerBoundHelper 的区别

javascript - 在 Javascript 中解析友好的 URL

html - 有条件地渲染 .hbs 模板 emberjs

ember.js - 删除记录后列表未更新

javascript - Qunit _initProperties 不是一个函数

node.js - 了解哪些依赖键导致了计算属性的更改