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