Angular 5 - 数据未显示在模板中

达米安

我正在使用 angular 5,并且我正在努力使用可观察对象从休息端点获取数据以显示在我的模板上。

我的组件如下

import { Component, OnInit, Input } from '@angular/core';
import { NewsService } from './news.service';
import { NewsItem } from './newsItem.model';
import { Observable } from 'rxjs';

@Component({
  selector: 'app-news',
  //templateUrl: './news.component.html',
template: `
  <ul>
      <li *ngFor="let newsItem of newsItems">{{newsItem}}</li>
  </ul>
  <h3 *ngIf="newsItems"> {{ newsItems }} </h3> 

  <h3 *ngIf="test"> test: {{ test | async}} </h3>`,
  styleUrls: ['./news.component.css']
})
export class NewsComponent implements OnInit {

  newsItems: NewsItem[];
  test : string;

  constructor(private newsService: NewsService) { 
    this.newsItems = [];
  }

  ngOnInit() {

    this.newsService.getLatestNews().subscribe(
      data => {
        console.log('1 Component Data:', data);
        data.forEach(function (newsItem) {
          console.log('2 Component Data:', newsItem);
        });

        this.newsItems = data;
        this.test = 'Hello';
        console.log('3 Component newsItems:', this.newsItems);
        console.log('4 Component test:', this.test);
      }
    );
  }

}

我的服务如下

import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders, HttpParams, HttpRequest } from '@angular/common/http';
import 'rxjs';
import { NewsItem } from './newsItem.model';
import { Observable } from 'rxjs';

@Injectable()
export class NewsService {

  newsEndpoint:string = 'http://myendpoint.com/services/news';

  constructor(private httpClient: HttpClient) { }

  getLatestNews(): Observable<NewsItem[]>{
       return this.httpClient.get<NewsItem[]>(this.newsEndpoint, {
          observe: 'body',
          responseType: 'json'
        });
  }

}

数据正在 ngOnInit 方法中打印到控制台,但模板中不会输出任何内容

我正在尝试使用此模板为 sharepoint 框架创建一个角度应用程序 - https://github.com/maliksahil/SPFxAngularCLI

谁能看到我做错了什么?

切拉潘w

使用 ChangeDetectorRef

 constructor(private newsService: NewsService,private cdr:ChangeDetectorRef) { 
    this.newsItems = [];
  }

  ngOnInit() {

    this.newsService.getLatestNews().subscribe(
      data => {
        console.log('1 Component Data:', data);
        data.forEach(function (newsItem) {
          console.log('2 Component Data:', newsItem);
        });

        this.newsItems = data;
        this.cdr.detectChanges()
        this.test = 'Hello';
        console.log('3 Component newsItems:', this.newsItems);
        console.log('4 Component test:', this.test);
      }
    );
  }

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Angular 5 模板扩展

来自分类Dev

API 数据 Angular 5

来自分类Dev

angular2教程-模板未显示在节点应用中

来自分类Dev

angular2教程-模板未显示在节点应用中

来自分类Dev

ngRx/store Observable 值未显示在 Angular 模板中

来自分类Dev

Angular 5 中的分页

来自分类Dev

数据未追加到angular2中的模板

来自分类Dev

无法在 Angular 5 中显示 Toast 消息

来自分类Dev

无法在 angular 5 的数据库中显示我的页面中的数组数据?

来自分类Dev

Angular 5:视图未更新

来自分类Dev

Angular 5 提交未触发

来自分类Dev

Angular 5 列出 json 数据

来自分类Dev

数据绑定缓慢 - Angular 5

来自分类Dev

Angular 2组件中未显示JSON数据

来自分类Dev

ASP.NET 5的TypeScript中的Angular 2 DataService不显示数据

来自分类Dev

如何在 Angular5 或 Javascript 中按日期显示数据?

来自分类Dev

Angular 5 中的 JWT 授权

来自分类Dev

html 中的 Angular 5 {{}} 计算

来自分类Dev

未找到 Angular 5 的 html 模板文件

来自分类Dev

Angular:有没有办法在模板中显示原始(原始/未编译)代码

来自分类Dev

Angular 5 - 设计容器未在整页中显示

来自分类Dev

条形图的数据集未使用Angular中的ng2图表和ng5-slider正确设置

来自分类Dev

Angular 5:根据输出显示状态文本

来自分类Dev

在Angular模板中未扩展值

来自分类Dev

Angular 5 / Typescript/RxJS - 从 Observable 获取数据

来自分类Dev

来自MySQL数据库的数据未显示在PyQt5的QTableWidget中

来自分类Dev

在Angular 2(ES5)中绑定数据

来自分类Dev

Mat-table 不打印 Angular 5 中的数据

来自分类Dev

Angular 5 - 服务中的数据更改未到达组件