发表于: 2017-05-24 23:31:38
1 810
今天完成的事情:
今天先是学习了AngularJS文件上传和Angular File Upload模块,对比了一下,AngularJS的文件上传代码量很大,很复杂,需要定义fileModel指令,注入$parse服务,定义fileUpload服务和uploadFileToUrl()方法,最后通过$http.post()方法把文件信息提交到客户端。
相比之下Angular File Upload模块就显得精简很多,支持的功能也很多。只要引入angular-file-upload.js文件,再写很少一部分代码就能实现上传功能。
我照着书上的例子写了个demo,确实能把图片上传到服务器,但是把代码搬到我的任务里时却出了问题。遇到了一个又一个bug。
明天计划的事情:
再看看其他的代码,找找问题原因,实在不行就先跳过。
遇到的问题:
一开始是引入了angular-file-upload.js文件后,从登录页面进入后整个articleList列表页都不见了,点击左侧sidebar里的链接也都没反应。F12的console提示"angular file upload failed to parse SourceMap:http:xxx"
看了一下好像是引入的js文件有问题,百度了一下,说是因为网站引用的第三方的angular是压缩后的版本,而且有sourcemap的指向信息,而我的网站没有相应的map文件,所以抛出此异常。据说这种情况多出现于引入min.js文件时。但我之后换成未压缩的或者是cdn的链接都还会出现那个提示。这时又百度到一个人说出现这种提示无伤大雅,不会产生什么功能上的错误,想让提示消失的话可以进入F12=>setting=>sources=>
Enable JavaScript source maps把这一项的钩去掉就行了。去掉后这个提示果然消失了,但是又出了新问题,“Argument xxxcontroller is not a function, got undefined”我的新增页面的控制器不起作用。
最早的时候我的控制器是写在main.html的body里的,后来做分页的时候相博说控制器要放在ui-view里面,不然点击页码后不能重载数据,也就实现不了翻页。但现在看来ui-view里只有列表页的控制器能生效。我后来又给其他的view写了些简单的控制器,里面写个$scope.hello = hello;之类的,结果也失效。目前看来问题就处在ui-view和controller这一点了。
收获:
面对这种情况我只能安慰自己失败是成功之母了,不知道为什么我这种问题相博和雪峰都没有遇到过,因为没有遇到过,所以也不会解决。看代码的话是没什么问题,但问题一定存在,找些没有问题的代码比对一下应该会更容易发现问题所在。
评论