AngularJS CRUDS的最佳实践

时间:2014-12-18 15:51:52

标签: angularjs

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

我已经阅读了一些关于代码结构的文章,但我仍然不确定如何通过创建这些CRUD来维护一个干净的结构。

在这个项目中,我使用ui-router进行状态管理。

.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"
})

使这项工作的最佳方法是什么?因为我使用的data变量已在user的{​​{1}}状态中解析,所以我无法对UserController使用UserController { {1}}状态,因为注入的变量无法解析。

我可以通过任何方式检查这一点,以便我可以使用createUser进行所有特定于用户的操作吗?

1 个答案:

答案 0 :(得分:1)

如果你愿意,你当然可以使用相同的控制器,尽管通常最好有一个新的控制器来创建动作。通常人们为每个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 [];
     }]
   }
})