1.使用cnpm安装jQuery和bootstrap后,页面没有加载的问题css
-使用cnpm安装的路径和使用npm安装路径不同,解决以下:node
把css路径改为
"../node_modules/_bootstrap@3.3.7@bootstrap/dist/css/bootstrap.min.css"
使用node_modules里的带版本号的文件,缘由是nodee_modules下的bootstrap只是一个快捷方式,不信你打开目录看下,若是是用webstorm开发的话,仔细看下文件夹右上角是否是带有一个箭头。git
2.Property 'map' does not exist on type 'Observable'github
解决方案:增长import 'rxjs/add/operator/map'web
3.修复4.0后http请求错误的问题:unused import {httpModule} from '@angular/http'或者NullInjectorError: No provider for Httpnpm
解决方案:json
1)引入bootstrap
import {HttpClient} from "@angular/common/http";segmentfault
import * as _ from 'lodash';api
2)修改调用
.map(data => _.values(data))
附参考地址:http://www.javashuo.com/article/p-fnoyflac-ck.html
4.anguar5 http proxy 代理设置无效
解决方案:URL地址后增长/*,如:“api/”改成“api/*”,还须要增长一个pathRewrite节点
"/api/*": {
"target": "http://localhost:26220/api",
"changeOrigin": true,
"secure": false,
"logLevel": "debug",
"pathRewrite": {"^/api" : ""}
具体pathRewrite节点的配置不太明白,应该是一个地址重写,将以“/api”开头的请求重写为空,根据日志打印出来的内容为:
[HPM] Rewriting path from "/api/product" to "/product"
[HPM] GET /api/product ~> http://localhost:26220/api
先重写了路径为“/product”,而后发起get请求后target到了 http://localhost:26220/api下,若是连起来就是访问http://localhost:26220/api/product
最后放上参考连接:https://stackoverflow.com/questions/43616755/angular-cli-proxy-doesnt-work
5.angular5 下的observable问题,webapi接口返回了product[]数据,angular接收时转换为product[]时颇费周折,看视频中直接json就好了,其实angular4的http模块已经升级为httpclient了,并且调用方法也有所不一样,试了不少种方法都不行,最后发现直接在get后要定义的格式便可,以下所示:
getProducts(): Observable<Product[]> {
const products = this.http.get<Product[]>('/api/product');
return products;
}
终于解决了。。。。
6.httpClient 发起get请求拼接请求参数使用reduce失效的问题,本来使用的方法以下:
Object.keys(params).filter(key => params[key]).reduce((sum: HttpParams, key: string) => {
sum.set(key, params[key]);
return sum;
}, new HttpParams());
修改以后的方法以下:
Object.getOwnPropertyNames(params)
.reduce((p, key) => p.set(key, params[key]), new HttpParams());
参考连接:https://github.com/angular/angular/issues/18012
跟着一个angular4的视频学习angular,我本地是angular5,前面基础知识还好,到这个http这块问题很多,一个坑接着一个坑。。。。。