本不愿碰JS的,但是公司项目涉及到此,单页面开发,查了一下,推angular的比较多,于是乎就用了起来。

很多人说angular的数据绑定多么多么好,我看过之后发现真是比wpf差的太远。

这里记录一下angular开发时遇到的问题,这里大多数都是自己不熟悉所导致,希望对同样是新手的你有帮助。

版本问题

对于版本问题,我认为angular做的很不好。网上查的angular中文教程中,图灵社区那篇比较靠前, 但那篇文章的版本不知道是停留在1.0还是1.1,总之对于使用1.2*的我来说,都是一种灾难。最起先发现版本问题是在route上,1.2版本以后将 angular-router分离出去,不再集成在angular.js中,之后发现1.3版本后,已经不再支持ie8,作为必须兼容ie8的苦逼中国程序员来说,使用angular 基本也就停留在了1.2版本上。

之前说angular比之wpf的绑定差的太远,起初并没有拿这两个来比,倒是发现1.3版本后出现了bind-once,我就笑了,wpf可不只是可以单次绑定, 还可以从这到这,从那到那,从里到外,从外到里。

虽然1.2版本并没有bind-once,但是有人实现了angular-once,可以参考这里,要说angular 自成一个体系,这类扩展真的很好写。

前台框架组合

既然angular是mvc结构,那么想当然的就想到如何组织代码结构,这时候发现了requirejs这货,看起来是挺好用, 但是和angular一组合起来就不是那么好玩了。

首先angular不符合他那个什么AMD规范,其次将angular分隔开来,遇到各种各样的问题,最后在github上找到各种第三方的实现,感觉不错用了用, 最后还是决定放弃这种组合,代码还没写多少,功夫全都费在这些东西上面感觉好不划算。想着初期代码不是很复杂,控制器不是很多,到后期再说。

不用requirejs后,倒是一路顺畅,先后引用了ui-bootstrap做对话框和ui-router做路由,其中ui-bootstrap把我坑了一次,主要是引用js的问题, 刚开始引用的是ui-bootstrap.js,最后发现总是找不到什么资源,在ui-bootstrap的源码中倒是有这个资源,最后查了半天才找到需要引用 ui-bootstrap-tpls.js。

类似的问题还遇到不少,大多都是感觉错误无从定位,angular报错后,只是给了一个链接(而且还打不开),加之自己引用的又是min文件,错误根本 无法定位。话又说回来,即使引用源文件,我也不认为我能找到js框架中的错误原因。感觉各种js框架都是逼出来的。

后台准备使用restful的,刚开始一路请求都是使用$http,用了不少倒是都没有问题,就是有点麻烦,最后发现一个restangular框架不错,引用后 却总是报错,和上面一样错误根本无法定位,最后也不知道查到哪里发现少引用了一个lodash库,也真是无语,刚开始应该看依赖关系的。



blog comments powered by Disqus

Published

2015-07-25

Tags