【发布时间】:2016-07-21 13:33:44
【问题描述】:
新手在这里(第一个 angular2 天)
我有一个包含 3 个字段的类:id 和 name,它们被传递给构造函数,还有一个名为 data 的第三个字段应该接收 JSON 文件的内容
export class Hero {
id: string;
name: string;
data: Object;
constructor(id: string, name: string) {
this.id = id;
this.name = name;
//retrieve JSON and assign it to this.data
var request = new XMLHttpRequest();
request.onload = function(){
var result = JSON.parse(this.responseText);
this.data = result;
};
//get the json file according to the object id
request.open("get", id+".json", true);
request.send();
}
}
然后我像这样实例化对象
new Hero("hero1", "Hero 1");
问题是指令this.data = result; 不起作用,因为this 指的是请求对象,而不是类。
另外,我不知道这是否是正确的方法(以及获取 json 文件)。我仍然很迷失angular2。谢谢
【问题讨论】:
-
有什么理由不使用
http.get()(不能解决您的实际问题)? -
@GünterZöchbauer 我看到了
http.get()的一些示例,其中http对象是构造函数参数,实际上我不明白。如果我添加它,那么实例new Hero("hero1", "Hero 1");将不再有效(缺少 1 个参数) -
Http在添加HTTP_PROVIDERS时提供(在AppComponent的bootstrap()或providers: [...]中。当组件由Angular 创建时,它传递一个Http实例(服务) 你可以用它来发出请求。另见angular.io/docs/ts/latest/tutorial/toh-pt6.html -
@GünterZöchbauer 谢谢,我会试试
标签: javascript angularjs json typescript angular