我下面的代码不起作用:
app.component.ts:
export class AppComponent {
posts;
constructor(private _service: GetPostsService) {
_service.getPosts().subscribe(function(response) {
this.posts = response;
console.log(this.posts);
});
console.log(this.posts);
}
}
get-posts.service.ts:
export class GetPostsService {
constructor(private _http: HttpClient) {}
getPosts() {
return this._http.get(
"https://jsonplaceholder.typicode.com/posts"
);
}
}
app.component.html:
<ul>
<li *ngFor="let post of posts">
{{ post }}
</li>
</ul>
没有问题,在函数内部,帖子值更改为我从服务器接收的帖子,但在函数外部,帖子值字段未定义。例如,在控制台中,我收到以下消息:
未定义
Array(100){...} // 100个数组
我知道为什么未定义值,因为需要花费一些时间从服务器获取值,但是为什么角度更改机制在填充post的值时无法识别更改?主要是为什么即使请求完成后我仍会出现黑屏!
注意:如果我将功能更改为箭头功能,则代码可以按预期工作,但是我想知道普通功能出了什么问题。