1

我是 AngularJS 的新手,并且已经阅读了它的教程,阅读了它的一些文档,并且我了解了主要方面。但我需要一些帮助来组织我的项目结构。

基本上,我想要一个单页应用程序。将有几个主要部分,例如:客户、销售、报告等。每个部分都有自己的页面,例如“添加客户”、“查看销售报告”等。

1)那么,我应该为我的应用程序制作一个模块,为每个屏幕使用不同的路由和控制器吗?

2) 或者我应该有多个模块,例如一个用于“客户”的模块,一个用于“销售”的模块,等等?

3)假设我有一个“添加客户”表单,其中包含一堆字段。我希望这个表单是交互式的,例如,如果用户从下拉列表中选择他的国家,我想通过 ajax 请求加载该国家的城市。我会在我的控制器中进行此事件处理,还是应该为它制定指令?如果我只需要一个表单的这个功能怎么办,我还应该去写指令的麻烦吗?

4) 我想构建一个 CRUD 表单构建器类型的库,我将在其中添加所需的字段,然后它会生成添加/编辑/删除/列表视图和表单,以及所需的表单验证。像这样的东西:

var crud = new CrudLib();
crud.addTextbox('first').label('First Name').rules('required');
crud.addTextbox('email').label('Email').rules('required,email');
//....
crud.init();

我应该把它做成一个模块、一个指令还是别的什么?

4

1 回答 1

1

(一个问题太多问题。)

1) 和 2):将你的控制器和服务组织成你喜欢的模块。我倾向于把“相关的东西”放到一个单独的模块中。例如,LoginCtrl、LogoutCtrl、UserService 等。我放入了一个 User.js 文件,它是一个模块。

3) AJAX 交互应该放在服务/工厂/提供者中。事件处理应该在指令中。(指令有时可能看起来有点麻烦/过大,但只要您需要操作 DOM、附加事件处理程序或重用一大块 HTML,就可以使用它们。)

4)如果您需要自定义表单验证,则需要编写指令。另请参阅如何使用 Angular 输出动态表单字段?

于 2013-08-01T19:28:40.830 回答