Rest Adapter根据路由

时间:2018-06-19 07:13:12

标签: ember.js

我有一个现有的ember应用程序,其API正在更新并在不同的服务器上移动。因此,目前一些路由需要旧的API,有些需要新的API。我不想为这些路线创建单独的适配器。我想用application.js适配器和序列化器来管理新旧API。

在串行器端,我做了一个变压器mixin很好。但是在适配器(adapters/application.js)上,我无法根据路由动态设置主机和标头。对于pathForType,我在mixin中使用了一个方法,该方法返回基于路由名称的新/旧API路径。无法以这种方式设置标题和主机。

有人可以建议一种方法来解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我自己得到了解决方案。所做的是使用 ajaxOptions 方法根据需要动态更新标头。另外,注释掉 host 属性,并在同一个 ajaxOptions 块中从mixin动态获取主机网址并附加到网址。

ajaxOptions: function (url, type, hash) {
     let apiHostUrl=this.getApiHost(routeName);
     hash = hash || {};
     hash.url = apiHostUrl + url;
}

希望这对像我这样情况类似的人有用。