如何让我的 Ember 应用程序支持多个 api 主机,基于用户?
How can I have my Ember app support multiple api hosts, based on the user?
在我的 Ember 应用程序中,我希望 url 到 api 基于登录的用户。例如,用户 1 可能需要使用 host1.example.com 而用户 2 可能需要使用 host2.example.com.
我可以根据功能在适配器上设置主机吗?例如这样的事情:
export default DS.JSONAPIAdapter.extend({
host: () => {
if (user1) { return 'host1.example.com'; }
else { return 'host2.example.com'; }
}
});
我建议使用计算 属性 和您的用户服务,而不是使用函数并尝试在您的适配器上手动(强制性地)设置一些东西,因为您随后声明事物应该如何作为属性改变。像这样的东西应该工作得很好:
export default DS.JSONAPIAdapter.extend({
user: service(),
host: computed(‘user.isWhitelabeled’, function() {
if (this.get(‘user.isWhitelabeled’)) {
return 'host1.example.com';
} else {
return 'host2.example.com';
}
})
});
在我的 Ember 应用程序中,我希望 url 到 api 基于登录的用户。例如,用户 1 可能需要使用 host1.example.com 而用户 2 可能需要使用 host2.example.com.
我可以根据功能在适配器上设置主机吗?例如这样的事情:
export default DS.JSONAPIAdapter.extend({
host: () => {
if (user1) { return 'host1.example.com'; }
else { return 'host2.example.com'; }
}
});
我建议使用计算 属性 和您的用户服务,而不是使用函数并尝试在您的适配器上手动(强制性地)设置一些东西,因为您随后声明事物应该如何作为属性改变。像这样的东西应该工作得很好:
export default DS.JSONAPIAdapter.extend({
user: service(),
host: computed(‘user.isWhitelabeled’, function() {
if (this.get(‘user.isWhitelabeled’)) {
return 'host1.example.com';
} else {
return 'host2.example.com';
}
})
});