AngularJS积垢的最佳实践

AngularJS积垢的最佳实践,angularjs,Angularjs,我试图通过来回调用API请求,找到在AngularJS中创建CRUD(创建/读取/更新/删除)的最佳方法 我读过一些关于代码结构的文章,但仍然不知道如何通过创建这些积垢来维护干净的结构 在这个项目中,我使用ui路由器进行状态管理 .state('user', { url: "/user", templateUrl: "app/views/user/index.html", controller: "UserController as user", resolve: {

我试图通过来回调用API请求,找到在AngularJS中创建CRUD(创建/读取/更新/删除)的最佳方法

我读过一些关于代码结构的文章,但仍然不知道如何通过创建这些积垢来维护干净的结构

在这个项目中,我使用
ui路由器
进行状态管理

.state('user', {
   url: "/user",
   templateUrl: "app/views/user/index.html",
   controller: "UserController as user",
   resolve: {
     data: ['UserService', function (UserService) {
       return UserService.all();
     }]
   }
})

.state('createUser', {
   url: "/user/create",
   templateUrl: "app/views/user/create.html",
   controller: "UserController as user"
})
什么是最好的方式使这项工作?由于我使用的是
数据
变量,该变量在
用户控制器
用户
状态下解析,因此我无法将相同的
用户控制器
用于
创建用户
状态,因为无法解析注入的变量


是否有任何方法可以检查这一点,以便我可以使用
UserController
执行所有特定于用户的操作

如果您愿意,当然可以使用相同的控制器,尽管创建操作通常最好使用新的控制器。通常,人们要么为每个CRUD操作编写一个特殊的控制器,要么有时使用同一个控制器进行创建和更新

在您的特定情况下,如果要使用相同的控制器,只需返回一个空的用户数组作为数据变量。像这样:

.state('user', {
   url: "/user",
   templateUrl: "app/views/user/index.html",
   controller: "UserController as user",
   resolve: {
       data: ['UserService', function (UserService) {
           return UserService.all();
       }]
   }
})

.state('createUser', {
   url: "/user/create",
   templateUrl: "app/views/user/create.html",
   controller: "UserController as user",
   resolve: {
     data: [function () {
       return [];
     }]
   }
})

为每个CRUD操作使用不同的控制器会是什么样子?还有什么好的命名约定呢?通常,您会创建一个视图来列出所有实体(例如:users.html或userList.html),并为该视图创建一个控制器(usersCtrl.js)。此视图+控制器通常只列出所有数据,并具有用于添加新实体、编辑实体或删除实体的链接(删除通常也由列表控制器处理,因为它非常简单,不需要视图)。然后您有一个用于添加新实体(addUser.html和addUserCtrl.js)的视图+控制器和一个用于编辑的视图/控制器。添加用户不需要数据,编辑需要1个实体。有时这两个是在一个。