【发布时间】:2017-08-28 07:04:39
【问题描述】:
我正在尝试使用 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,我真的不明白为什么它不起作用。
我读到代码可能会在角度区域之外运行,但我不明白为什么,因为我只使用内置功能。
视图绑定:
<div *ngFor="let str of content">
{{ str }}
</div>
你能帮忙吗?
谢谢!
【问题讨论】:
-
您的视图绑定是什么样的。我也看不出为什么你需要
zone.run(...)这个例子。 -
我也不是,这就是为什么我不明白为什么它不起作用。我已经添加了视图绑定。
-
添加
<div>{{content | json}}</div>会得到什么? -
很遗憾,它没有任何影响。
-
这意味着
this.content = data没有赋值。
标签: javascript angular zone.js