我有一个现有的ember应用程序,其API正在更新并在不同的服务器上移动。因此,目前一些路由需要旧的API,有些需要新的API。我不想为这些路线创建单独的适配器。我想用application.js适配器和序列化器来管理新旧API。
在串行器端,我做了一个变压器mixin很好。但是在适配器(adapters/application.js)
上,我无法根据路由动态设置主机和标头。对于pathForType
,我在mixin中使用了一个方法,该方法返回基于路由名称的新/旧API路径。无法以这种方式设置标题和主机。
有人可以建议一种方法来解决这个问题吗?
答案 0 :(得分:0)
我自己得到了解决方案。所做的是使用 ajaxOptions
方法根据需要动态更新标头。另外,注释掉 host
属性,并在同一个 ajaxOptions
块中从mixin动态获取主机网址并附加到网址。
ajaxOptions: function (url, type, hash) {
let apiHostUrl=this.getApiHost(routeName);
hash = hash || {};
hash.url = apiHostUrl + url;
}
希望这对像我这样情况类似的人有用。