Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular 2-如何使用来自本地json的数据?_Javascript_Angular_Typescript - Fatal编程技术网

Javascript Angular 2-如何使用来自本地json的数据?

Javascript Angular 2-如何使用来自本地json的数据?,javascript,angular,typescript,Javascript,Angular,Typescript,谢谢每一个参与进来帮助我的人现在它像魅力一样工作 谢谢大家 有人能告诉我如何使用本地JSON数据吗 我不确定配置中缺少什么(问题可能在HTTP配置中)。下面是我的文件结构 ├───app about.component.html about.component.ts app.component.css app.component.html app.component.spec.ts app.component.ts app.module.ts app.routing.ts dataser

谢谢每一个参与进来帮助我的人现在它像魅力一样工作

谢谢大家

有人能告诉我如何使用本地JSON数据吗

我不确定配置中缺少什么(问题可能在HTTP配置中)。下面是我的文件结构

├───app
    about.component.html
about.component.ts
app.component.css
app.component.html
app.component.spec.ts
app.component.ts
app.module.ts
app.routing.ts
dataservice.ts
home.component.html
home.component.ts
dummy.json
└───environments
myService.ts

@Injectable()
export class dataService implements OnInit {
  constructor(private Http: Http) {}
  private _url: string = "assets/js/dummy.json";
  ngOnInit() {}
  gethomedata() {
    return this.Http.get(this._url).map(response => response.json());
  }
}
homeComponent.ts

@Component({
  templateUrl: './home.component.html',
})
export class home implements OnInit {
  constructor(private http: Http, private dataService: dataService) {}
  home = [];
  ngOnInit() {
    this.dataService.gethomedata().subscribe(data => {
      console.log('home', data);
      this.home.push(data);
    })
  }
}
当我运行时,它显示404NotFound错误。 你能告诉我哪里做错了吗


理论上,您有两种选择:

  • 您将json作为一个资产提供,并通过
    HttpClient
    检索它
  • 将json放入源代码中,将其导入typescript中,然后在编译时通过webpack将其转换为对象

  • 在实践中,据我所知,第二点是不可行的,因为它涉及到修改网页包配置,而Angular目前不可能做到这一点。

    尝试将json放在资产文件夹中放置什么?在asset folderCheg中,编译angular应用程序时,在“dist”文件夹中有index.html、css、js和一个名为assets的文件夹(scr/assets中文件夹“assets”的副本)。使用此文件夹可以放置所有需要读取的内容:图像、.json等,但我没有使用任何其他基本文件夹结构├───应用程序├───资产│ └───js dummy.json└───现在我已经像你说的那样改变了。你能告诉我如何访问它吗?Noel请检查我的更新问题,我已附上截图。错误显示的路径(assets/dummy.json)与您在目录(assets/js/dummy.json)中所说的路径不同。抱歉,响应延迟。现在工作正常:)