02
2020
06

一个angular应用应当如何良好地分层?

目录结构的划分


1、对于小型项目,可以按照文件类型组织,比如:


css


Js  {


controllers


models


services


filters


}


templates


2、但是对于规模较大的项目,最好按业务模块划分,比如:


css


Modules


account


controllers


models


services


filters


templates


disk


controllers


models


services


filters


templates


modules下最好再有一个common目录来存放公共的东西。


3.逻辑代码的拆分


作为一个MVVM框架,Angular应用本身就应该按照 模型,视图模型(控制器),视图来划分。


这里逻辑代码的拆分,主要是指尽量让controller这一层很薄。提取共用的逻辑到service中 (比如后台数据的请求,数据的共享和缓存,基于事件的模块间通信等),提取共用的界面操作到directive中(比如将日期选择、分页等封装成组件等),提取共用的格式化操作到filter中等等。


在复杂的应用中,也可以为实体建立对应的构造函数,比如硬盘(Disk)模块,可能有列表、新建、详情这样几个视图,并分别对应的有controller,那么可以建一个Disk构造函数,里面完成数据的增删改查和验证操作,有跟Disk相关的controller,就注入Disk构造器并生成一个实例,这个实例就具备了增删改查和验证方法。这样既层次分明,又实现了复用(让controller层更薄了)。

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。