如何从不同的URL获取Ember.js模型?

时间:2015-08-14 03:14:54

标签: ember.js

我正在努力建立一个"我的帐户"当前用户的页面。通常我做store.find('user', id)之类的事情。返回当前用户数据的API端点为/account,但我需要将此数据加载到用户模型中。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

我认为您可能需要修改适配器的buildURL方法......

e.g。

export default ApplicationAdapter.extend({
    buildURL : function(type, id) {
        // replace the following line with your own code
        var currentUserID = 101; 

        if (id === currentUserID) {
            return this.namespace + "/account";
        } else {
            return this.namespace + "/users/" + id; //assuming this is your api endpoint
        }
    },
});

答案 1 :(得分:0)

要将模型命名空间从users更改为account,请实现pathForType挂钩。

就像这样

应用/适配器/ user.js的

import Adapter from './application';

export default Adapter.extend({
  pathForType() {
    return 'account';
  }
});

要另外支持此查询的单例资源,您可以实现urlForFindRecord挂钩。在这种情况下,您需要做的就是不给_buildUrl一个ID,让它做你想做的事。

import Adapter from './application';

export default Adapter.extend({
  pathForType() {
    return 'account';
  },
  urlForFindRecord(id, modelName) {
    return this._buildUrl(modelName);
  }
});