我尝试使用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而且我不太明白为什么它不起作用。< / p>
我读到代码可能在角度区域之外运行,但我不明白为什么我只使用内置功能。</ p>
查看绑定:
<div *ngFor="let str of content">
{{ str }}
</div>
你能帮忙吗?
谢谢!
答案 0 :(得分:0)
原来这个问题既不是webpack也不是我的代码,而是我使用的第三方代码。
我实现了基于this answer的Google登录,因为您可以看到它使用本机JS处理程序 - 我认为这会导致问题。如果我将该代码放入zone.run,那么一切正常。我认为原因是处理程序在区域上下文之外运行,这就是视图未更新的原因。