Angular 2 视图在 HTTP 调用后未更新
Angular 2 view not updated after HTTP call
我正在试验 Angular 2,我正在尝试使用内置 HTTP 服务发出 http 请求:
@Injectable()
export class MyService {
constructor(private http: Http) {
}
public get(): Observable<string[]> {
return this.http.get('http://localhost:8080/endpoint')
.map((data) => <string[]>data.json()['content']);
}
}
用法如下:
export class MyComponent implements OnInit {
public content: string[];
constructor(private myService: MyService) {
}
public ngOnInit(): void {
this.myService.get().subscribe((data) => {
this.content = data;
});
}
}
如果我使用 zone
到 运行 数据分配,那么它会按预期工作,但我觉得它有点 hacky,我不太明白为什么它不起作用。
我读到代码可能 运行 在 angular 区域之外,但我不明白为什么,因为我只使用内置功能。
视图绑定:
<div *ngFor="let str of content">
{{ str }}
</div>
你能帮忙吗?
谢谢!
原来问题既不是webpack也不是我的代码,而是我使用的第3方代码。
我基于 实现了 Google 登录,如您所见,它使用了本机 JS 处理程序 - 我认为这是问题所在。如果我将该代码放入 zone.run,那么一切正常。我认为原因是处理程序 运行 在区域上下文之外,这就是视图未更新的原因。
我正在试验 Angular 2,我正在尝试使用内置 HTTP 服务发出 http 请求:
@Injectable()
export class MyService {
constructor(private http: Http) {
}
public get(): Observable<string[]> {
return this.http.get('http://localhost:8080/endpoint')
.map((data) => <string[]>data.json()['content']);
}
}
用法如下:
export class MyComponent implements OnInit {
public content: string[];
constructor(private myService: MyService) {
}
public ngOnInit(): void {
this.myService.get().subscribe((data) => {
this.content = data;
});
}
}
如果我使用 zone
到 运行 数据分配,那么它会按预期工作,但我觉得它有点 hacky,我不太明白为什么它不起作用。
我读到代码可能 运行 在 angular 区域之外,但我不明白为什么,因为我只使用内置功能。
视图绑定:
<div *ngFor="let str of content">
{{ str }}
</div>
你能帮忙吗?
谢谢!
原来问题既不是webpack也不是我的代码,而是我使用的第3方代码。
我基于