Aurelia:在main.js中配置并使用fetch
我之前发布了一个关于如何配置Aurelia的fetch客户端以及如何在我的所有viewModels()中使用配置的客户端的问题 我在main.js文件中配置fetch客户端。现在,我想在main.js中使用这个配置相同的获取客户端。我无法注入客户端实例,因为它将在注入后定义Aurelia:在main.js中配置并使用fetch,aurelia,aurelia-fetch-client,Aurelia,Aurelia Fetch Client,我之前发布了一个关于如何配置Aurelia的fetch客户端以及如何在我的所有viewModels()中使用配置的客户端的问题 我在main.js文件中配置fetch客户端。现在,我想在main.js中使用这个配置相同的获取客户端。我无法注入客户端实例,因为它将在注入后定义 import {HttpClient} from 'aurelia-fetch-client'; export function configure(aurelia) { this.jsonobj = { 'opera
import {HttpClient} from 'aurelia-fetch-client';
export function configure(aurelia) {
this.jsonobj = {
'operation':'verify'
};
aurelia.use
.standardConfiguration()
.developmentLogging();
let container = aurelia.container;
let http = new HttpClient();
http.configure(config => {
config
.useStandardConfiguration()
.withInterceptor({
request(request) {
request.headers.set('token', window.localStorage.getItem('token'));
return request;
}
});
});
container.registerInstance(HttpClient, http);
aurelia.start().then(
a => {
this.http.fetch('dist/components/api.php', {
credentials: 'include',
method: 'post',
body: JSON.stringify(this.jsonobj)
})
.then(response => response.json())
.then(data => {
if (data.error==='true') {
a.setRoot('login');
}else {
a.setRoot('app');
}
});
});
}
我认为您的大部分代码都是正确的,只需删除
this.http.fetch上的this.
('dist/components/api.php',…
line。我在发布一分钟后就想出来了,但一直没有回答这个问题:通常我导入http客户端并将其注入我的viewModel。在上面的代码中,创建http对象只需要一行代码。为什么我们必须注入它(即使用Aurelia的DI容器)如果自己创建它很简单的话。我也读了一些关于DI容器如何工作的文章。我们使用DI是因为http客户端只有一个副本(即它是一个单实例)。如果是这样的话,“container.registerInstance(…)中就没有意义了对吗?我认为您的大部分代码都是正确的,只需删除this.http.fetch上的this.
('dist/components/api.php',…
line。我在发布一分钟后就想出来了,但一直没有回答这个问题:通常我导入http客户端并将其注入我的viewModel。在上面的代码中,创建http对象只需要一行代码。为什么我们必须注入它(即使用Aurelia的DI容器)如果自己创建它很简单的话。我也读了一些关于DI容器如何工作的文章。我们使用DI是因为http客户端只有一个副本(即它是一个单实例)。如果是这样的话,“container.registerInstance(…)”就没有意义了,对吗?