javascript - Angular 2 : Template not updating after http service update

标签 javascript ajax angular angular2-template angular2-services

我仍在努力学习 ng2,所以我确定这是一个常见的菜鸟问题,但我在网上找到的解决方案都没有帮助。有人知道我的问题是什么吗?

我有一个将 getEventList() 方法作为可观察对象的服务

getEventList(): Observable<any>{
    return this.http.get('./assets/data.json')
        .map(response => response.json());
}

我在我的组件中订阅了它

ngOnInit(){
    this.eventService.getEventList()
        .subscribe(events => {
            this.zone.run(()=>{
                this.events = events;
                console.log(this.events)
            });
        });
}

我的模板只是尝试以 json 格式输出事件变量

<p>
    {{
        events | json
    }}
</p>

如您所见,我将事件的值分配给 zone.run() 回调中的局部变量。仍然没有看到我的模板更新。我也尝试过 ApplicationRef.tick 和 ChangeDetectorRef.detectChanges() 但似乎都没有检测到我的更改。

Console.log 调用确实确认数据已更新。在此组件上触发的任何点击处理程序似乎也会更新 View 。

有人知道我在这里做错了什么吗?我发布了足够多的代码以获得一些建议吗?让我知道您还想看到什么。

最佳答案

假设您在调用 getEventList() 方法之前没有为 this.events 赋值,那么应该这样做:

<div *ngIf="events">
{{ events | json }}
</div>

关于javascript - Angular 2 : Template not updating after http service update,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39150060/

相关文章:

javascript - 是否可以使用 jqPlot 将图例写入单独的分区

javascript - 运行时错误 : There is no current event loop in thread 'Thread-1' . - requests_html, html.render()

angular - Highchart yAxis plotLines 标签位置

angular - 使用angular将隐藏参数传递给外部链接

javascript - 将上下文传递给 ngx bootstrap 的工具提示

javascript - 我想使用 Jquery 在我的网站中嵌入 API 调用

javascript - 如何减少融合 donut2d 图表切片厚度?

javascript - Rails 应用程序发送 HTML 响应而不是 JS

javascript - 用户索引页面上的 Ajax 按钮未更新 - Rails 教程 4

php - Ajax 读取 PHP