常有这样的需求,一个html,然后加载json文件,替代调用api,展示日志内容。
默认当前用户已安装angular-cli,就不具体的介绍环境安装了。
环境安装
mac环境下
1 2 3
| brew install nvm nvm install v12.16.1 npm i -g @angular/cli
|
项目创建
json文件
json文件,需要放置在assets目录中,否则解析不到,也不会随构建打包到dist中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| // assets/data.json [ { "letter": "A", "frequency": 0.08167 }, { "letter": "B", "frequency": 0.01492 }, { "letter": "C", "frequency": 0.02782 }, { "letter": "D", "frequency": 0.04253 }, { "letter": "E", "frequency": 0.12702 }, ]
|
import方式读取json
tsconfig.json配置文件中修改配置
1 2
| // tsconfig.json compilerOptions 配置 json ,否在json依赖编译失败 "resolveJsonModule": true,
|
typescript2.9+ import
需要放置code位于constructor中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| import { HttpClient } from '@angular/common/http'; import { Component } from '@angular/core'; import * as data from '../assets/data.json';
@Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.scss'] }) export class AppComponent { products:any;
constructor(private http: HttpClient) { const res = (data as any).default; console.log(res); } }
|
Angular HttpClient 读取json
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| // app.module.ts 别忘了imports HttpClientModule import { HttpClient } from '@angular/common/http'; import { Component } from '@angular/core';
@Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.scss'] }) export class AppComponent { products:any;
constructor(private http: HttpClient) { this.http.get('assets/data.json').subscribe(data =>{ console.log('data....',data); this.products = data; }) } }
|
编写完毕后,文件部署
部署到静态服务器
譬如 http-server
1 2
| npm install --global http-server http-server -c-1 -p 8080 .
|
部署到tomcat
tomcat项目部署,需要注意index.html中base,非/