我是Aurelia的新手。
您将如何更改以下代码以提供虚拟HttpClient,例如json读取器,而不是仅提供静态json数据集,从而无需开发服务器。
import {inject} from 'aurelia-framework';
import {HttpClient} from 'aurelia-fetch-client';
@inject(HttpClient)
export class Users {
heading = 'Github Users';
users = [];
constructor(http) {
http.configure(config => {
config
.useStandardConfiguration()
.withBaseUrl('https://api.github.com/');
});
this.http = http;
}
activate() {
return this.http.fetch('users')
.then(response => response.json())
.then(users => this.users = users);
}
}
要使原始文章中的演示代码达到可以替代HttpClient实现的状态,需要执行几个步骤。
在类的构造函数中删除配置代码…
这些行:
users.js
...
http.configure(config => {
config
.useStandardConfiguration()
.withBaseUrl('https://api.github.com/');
});
...
应移至main.js
文件:
main.js
export function configure(aurelia) {
aurelia.use
.standardConfiguration()
.developmentLogging();
configureContainer(aurelia.container); // <--------
aurelia.start().then(a => a.setRoot());
}
function configureContainer(container) {
let http = new HttpClient();
http.configure(config => {
config
.useStandardConfiguration()
.withBaseUrl('https://api.github.com/');
});
container.registerInstance(HttpClient, http); // <---- this line ensures everyone that `@inject`s a `HttpClient` instance will get the instance we configured above.
}
现在我们的users.js文件应如下所示:
users.js
import {inject} from 'aurelia-framework';
import {HttpClient} from 'aurelia-fetch-client';
@inject(HttpClient)
export class Users {
heading = 'Github Users';
users = [];
constructor(http) {
this.http = http;
}
activate() {
return this.http.fetch('users')
.then(response => response.json())
.then(users => this.users = users);
}
}
模拟HttpClient。
user.js模块仅使用fetch
方法,该方法返回Response
具有json
方法的对象。这是一个简单的模拟:
let mockUsers = [...todo: create mock user data...];
let httpMock = {
fetch: url => Promise.resolve({
json: () => mockUsers
})
};
重新配置容器以使用http模拟:
在第1步中,我们向模块中添加了一个configureContainer
函数,该函数main.js
在容器中注册了已配置的HttpClient实例。如果我们想使用模拟版本,该configureContainer
函数将更改为:
main.js
...
let mockUsers = [...todo: create mock user data...];
let httpMock = {
fetch: url => Promise.resolve({
json: () => mockUsers
})
};
function configureContainer(container) {
container.registerInstance(HttpClient, httpMock);
}
有关在此处配置容器的更多信息:https : //github.com/aurelia/dependency-
injection/issues/73
问题内容: 我正在为uni开发一个项目,并且一直在基于的表中使用to上的以下代码: 这在我的测试服务器上运行良好,但是在迁移到大学项目服务器时返回此错误: 一些谷歌搜索建议使用代替,但我不知道如何在表中做到这一点。大多数示例仅显示返回 任何帮助将非常感激 问题答案: 假设您无法使用并且想要一系列设备,则可以执行以下操作: 这将创建一个临时数组并将其每一行中的数据存储在其中,然后将其推入主数组。据我
问题内容: 我需要将Windows C ++项目转移到linux,但是我目前正在使用与linux或标准不兼容的MS 。您建议使用什么头替换它以便在Linux中使用?我希望答案也是跨平台的。 问题答案: 有一个基于NCurses的Linux替代版本的Conio.h。 http://sourceforge.net/projects/linux- conioh/
问题内容: 我想这样链接命令: 由于80列长度的原因,我想将链分成几行,但是Go不会让我编译它: 我能做什么 ? 问题答案: 正如FUZxxl指出的那样,您的问题是分号的自动插入。规格说明: 当输入被分解为令牌时,如果该行的最终令牌为,则将分号自动插入到非空白行的末尾的令牌流中。 标识符 整数,浮点数,虚数,符文或字符串文字 关键字之一break,continue,fallthrough或retu
Aurelia 是下一代的 JavaScript 客户端框架,利用一些简单便利的措施来加强你的创造力。 特性: 前瞻性:采用 ES6 和 ES7 编写,集成很多 Web 组件,无外部依赖 先进的架构 双路数据绑定 可扩展 HTML 路由和 UI 组件 MV* 模式 支持多种语言:ES 6&7、TypeScript、CoffeeScript 等 可测试 基础页面 index.html: <!doct
问题内容: 我有一个xml URL文件,其中有空格,我想用%20替换空格。 问题答案: 试试这个:
问题内容: listagg是Oracle 11.2中引入的功能!现在,此功能正在分配给我们,我们正在从MySQL迁移到Oracle,我们有以下查询: 据我们所知,Oracle在MySQL下工作正常,在MySQL下运行良好,它会根据需要返回VARCAR而不是CLOB! 文本很大,我们确实需要CLOB ! 这是我试图做的! 创建一个CLOB类型的CLOB_T表! 然后创建函数 现在,如果我运行它: 我