用angularjs+slim开发类似知乎的网站需要注意什么?
作者:徐飞
链接:/question/26712920/answer/33768647
来源:知乎。
版权归作者所有,授权请联系作者。
给你点个人建议:
从产品形态来说,用Angular是可以的,但这种情况下没必要引入jQuery。BootStrap是合适的选择,但是style就够了,不需要介绍它的JS。因为你的产品UI复杂度不高,基本不需要手动操作DOM,所以可能需要引入的JS库,除了Angular之外,还会有几个类似的文本编辑器,代码高亮等等。我粗略看了一下,觉得处理的不错。
路由也是有规划的,不错,默认前缀有点奇怪。。。
关于控制器的代码,我有话要说。
代码实际上没有分层。Angular中所谓的控制器,其实就是一个视图模型,里面的东西基本上应该就是视图直接需要的东西。这是什么意思?如果你有一个不是特别简单的流程,视图只需要这个流程的结果,你其实可以把流程往前推,让它成为一个服务,然后通过调用服务来获取控制器中的数据。
当你得到这个代码的时候,它说你的与数据获取相关的代码可以被提取出来,也就是$http.get,因为这些东西很可能在不同的控制器中被重用,所以如果你把它们按照类型放到不同的服务中,每个服务中的方法都会返回promise,这样会更清晰。如果你还需要享受数据,比如界面中多个视图的一些数据要全局同步,你也可以用service做一个store,把这个数据模型用singleton的方式存储起来,让不同的视图模型可以抱在一起。
此外,在某些部分,您直接在控制器中处理DOM代码,这并不好。像这样的事情通常会单独提交给directive,所以不要把它们放在视图模型中。再想想这部分。