0

我需要列出、编辑和删除实体。我对每个操作都有不同的看法。我想知道为这些操作使用相同的 Angular 控制器是否是一个好习惯,这些操作适用于每个操作,或者每个操作是否应该有一个单独的控制器?

此外,如果对这些操作使用相同的控制器,是否可以在加载不同的视图时调用不同的函数?因此,当用户进入列表视图时,会在页面加载时调用列表方法,而当用户进入编辑视图时,会在加载编辑视图时调用控制器的编辑方法。我设法通过使用 ngInit 调用方法来实现这一点,但显然在 v1.2 中不推荐这样做,只能与 ngRepeat 一起使用。

我的问题与此类似。Angular - 使用一个控制器处理多个 HTTP 请求的多个连贯视图

但是我也想知道是否有一种方法可以根据控制器使用的视图来调用同一控制器的不同初始化方法。

4

2 回答 2

0

I have got my answer here: Using same controller for all CRUD operations (Rails-alike)

Apparently it is a good practice to use a different controller for each view, and it shouldn't work as a service. This is quite different for someone coming from MVC/WebAPI into angular.

于 2014-10-24T07:40:08.393 回答
0

更好的方法可能是编写一个可以跨控制器使用的实用程序服务。在您的不同控制器中使用此服务。

您的服务将如下所示:

(function() {
'use strict';
// this function is strict...

angular
    .module('myapp.services', [])
    .service('Utility', function() {
        var Utility = {};

        Utility.edit = function(id, dataset) {
          //perform edit related task here 
        };

        Utility.delete = function(id, dataset) {
          //perform edit related task here 
        };
        return Utility;
    })
}());
于 2014-10-24T07:05:11.117 回答