哪个更好:将应用程序拆分为许多不同的指令/组件或许多不同的控制器?
将应用程序拆分为许多不同的指令/组件会创建一个“深度”应用程序。“深层”应用程序中有更多文件,但本质上更加模块化。优点:在团队环境中工作,两个人的努力相互碰撞的可能性较小(导致痛苦的合并)。在项目之间共享代码很容易。缺点:如果你想研究一个问题,你必须遵循一串代码才能到达你需要的地方。示例:无线电指令存在问题。您必须首先转到模板,找出无线电指令可能在哪个组件中,在其中查看指令定义,然后最后转到指令文件。
极端例子:想象一个有 10 个问题的表格。每个问题都是一个指令。表单本身就是一个组件。表单被加载到可视部分中,该部分是一个组件。构成页面的各个部分被加载到模板中。如果您是该项目的新手,并且表单问题 7 有问题,您必须从模板中“挖掘”以找到指令。
将应用程序拆分为许多不同的控制器会创建一个“宽”应用程序。“宽”应用程序中的文件较少,但每个控制器负责模板的一个方面。优点:您可以轻松查看模板并找到定义的所有内容。每个责任领域都由一个控制者接管。缺点:在团队环境中,多人将在同一个文件中工作。与项目共享代码更复杂。
极端例子:想象一个有 10 个问题的表格。每个问题都有一个控制器(用于验证)。该表格有一个控制器(检查所有问题何时有效)。该表单位于一个具有控制器的部分中。如果您是该项目的新手,并且表单问题 7 有问题,您将必须找到控制的控制器。
那么你认为哪个更好,为什么?“深度”应用程序还是“广泛”应用程序?
词汇(据我所知,请随时纠正我)
指令:由 HTML 模板和 javascript 指令文件组成。您将 DOM 操作逻辑或任何其他复杂的逻辑放在此处。示例:下拉列表、日期选择器、来自 jQuery UI 的任何内容。
组件:一段可重用的代码,用于抽象共性。您可以直观地做到这一点;想象一个漫画书页面。有许多由排水沟隔开的框架。每个框架都是一个组件,旨在容纳一件艺术品。
模板:汇集所有部分、组件和指令。模板将通过角度渲染到视图中。
部分:一段静态 HTML,旨在被拉入模板。
查看:模板的编译版本。该视图在 Angular 编译之前不存在。