当前位置: 首页 > 知识库问答 >
问题:

Angular 5 HTTP加载json文件错误

沈国安
2023-03-14

新闻资讯

import { Injectable } from '@angular/core';
    import { HttpClient } from '@angular/common/http';
    import { INews } from './inews';
    import { Observable } from 'rxjs';
    import { map } from 'rxjs/operators';

    @Injectable({
      providedIn: 'root'
    })
    export class NewsserviceService {
      public _url = 'http://localhost/admin/demo/api/get_posts/';
      constructor( public http: HttpClient) { }
      getNews(): Observable<INews[]> {
        return this.http.get<INews[]>(this._url).pipe(map(res => res.json()));
      }
     }

newsComponent.ts

import { Component, OnInit } from '@angular/core';
import { NewsserviceService } from './newsservice.service';

@Component({
  selector: 'app-news-ticker',
  templateUrl: './news-ticker.component.html',
  styleUrls: ['./news-ticker.component.scss']
})
export class NewsTickerComponent implements OnInit {
  public news: any[];
  constructor(private newsservice: NewsserviceService) { }

  ngOnInit() {
    this.loadNews();
  }
  loadNews(): void {
    this.newsservice.getNews().subscribe(res => this.news = res);

  }

}

新闻组件.html

<section class="news-ticker">
  <div class="container">
    <div class="row">
      <div class="col-md-12">
        <div class="ticker">
          <strong class="pull-left">news flash</strong>
          <ul>
            <li *ngFor='let news of news'>
              {{news.content}}
            </li>
          </ul>
        </div>
      </div>
    </div>
  </div>
</section>

控制台错误

错误类型错误:node_modules不是一个函数_esm5(_next)在node_modules。/node_modules/rxjs/_esm5/内部/运营商/_esm5mergeMap.js.MergeMapSubscriber.notifyNext(node_modules)在_esm5。/mergeMap.js:136/rxjs/InnerSubscriber.push./内部/_next(node_modules)在_esm5。/InnerSubscriber.js.InnerSubscriber./rxjs/InnerSubscriber.js:20/内部/运营商/node_modulesInnerSubscriber.push.(_esm5)在_next。/Subscriber.js.Subscriber.next/rxjs/Subscriber.js:93/内部/node_modules(_esm5)在node_modules。/map.js.MapSubscriber./rxjs/map.js:81/内部/运营商/_esm5MapSubscriber.push.(node_modules)在_esm5。/Subscriber.js.Subscriber.next/rxjs/Subscriber.js:93/内部/_next(Subscriber.js:93)在MergeMapSubscriber.push.。/FilterSubscriber.push./rxjs/filter.js.FilterSubscriber./内部/运营商/newsservice.service.ts:14(MapSubscriber.push.)在map.js.MapSubscriber.。/filter.js:85/rxjs/FilterSubscriber.push./内部/map.js:75Subscriber.js.Subscriber.next(MapSubscriber.push.)在Subscriber.js.Subscriber.next。/res.json/rxjs/MapSubscriber.project/内部/Subscriber.js:93(MapSubscriber.push.)

共有1个答案

申阳伯
2023-03-14

你最好写一些关于你的问题的信息,不管你的问题指的是什么

 getNews(): Observable<INews[]> {
            return this.http.get<INews[]>(this._url).pipe(map(res => res.json()));
      }

在您的服务中,将其更改为:

   getNews():Observable {
        return this.http.get(this._url)
      }

由于该方法为我们提供了可观察的,我们应该在目标组件中订阅它,您可以这样做:

loadNews() {
    this.newsservice.getNews().subscribe(res => this.news = res);

  }
 类似资料:
  • 问题内容: 我正在尝试加载本地JSON文件,但无法正常工作。这是我的JavaScript代码(使用jQuery): test.json文件: 什么都没有显示,Firebug告诉我这是未定义的。在Firebug中,我可以看到它是好的且有效的,但是当我复制该行时,这很奇怪: 在Firebug的控制台中,它可以正常工作,并且我可以访问数据。 有人有解决方案吗? 问题答案: 是异步的,所以您应该这样做:

  • 问题内容: 我正在尝试加载本地JSON文件,但无法正常工作。这是我的JavaScript代码(使用jQuery: test.json文件: 什么都没有显示,Firebug告诉我数据未定义。在Firebug中,我可以看到它是好的且有效的,但是当我复制该行时,这很奇怪: 在Firebug的控制台中,它可以正常工作,并且我可以访问数据。 有人有解决办法吗? 问题答案: 是异步的,所以您应该这样做:

  • 努力将json从URL上的文件(myData.json)加载到对象中,以便访问属性值。 --数据立即加载,我在应用程序中非常需要它。 -我将访问整个应用程序中的数据,而不仅仅是数据加载后立即发生的一个函数的一部分。 --我已确保文件中的数据格式正确。 按照jQuery API上的示例,我不应该做一些简单的事情,比如: 警报(jqxhr.my财产); 得到价值吗?我错过了哪一步?我试过做评估和其他类

  • 问题内容: 我正在尝试在iOS的libGDX中开发应用程序。 在我的Java课中,我写了这一行 我的robovm.xml看起来像这样- 当我尝试在iOS模拟器上运行代码时,它运行良好。但是,当我尝试在iOS设备(即iPhone)上运行它时。它产生一个看起来像这样的错误- 有人可以帮我弄这个吗 ? 注意:-在我的iOS项目的data文件夹中,还有另一个“ data”文件夹,其中还有一个名为“ fol

  • 问题内容: 我的代码在构造后的某个地方: 我尝试了这个: 项目结构 : 题: webpack如何复制到? 问题答案: 您用于请求JSON文件,而这只会在运行时发生。此外,webpack只处理导入的任何内容。您希望它可以处理函数的参数,但是如果webpack这样做,则函数的每个参数都将被视为模块,这会破坏该函数的其他用途。 如果您希望装入程序启动,则可以导入文件。 您还可以导入JSON并直接使用它,

  • 问题内容: 我试图将我的网站从基于XML的配置文件迁移到基于JSON的配置文件。有没有一种方法可以加载文件,使其变成对象?我一直在搜索网络,但找不到。我已经将文件转换并另存为。我宁愿不使用第3方库。 问题答案: 您 确实 应该使用已建立的库,例如Newtonsoft.Json(甚至Microsoft都使用MVC和WebAPI等框架),或者.NET的内置JavascriptSerializer。 这