Angularjs 不同视图的相同角度控制器

Angularjs 不同视图的相同角度控制器,angularjs,ng-init,Angularjs,Ng Init,我需要列出、编辑和删除实体。我对每个操作都有不同的看法。我想知道,在这些操作中使用相同的角度控制器是否是一种好的做法,或者每个操作应该有一个单独的控制器 此外,如果这些操作使用相同的控制器,是否可以在加载不同视图时调用不同的函数?因此,当用户转到列表视图时,在页面加载时调用列表方法,当用户转到编辑视图时,在编辑视图加载时调用控制器的编辑方法。我通过使用ngInit调用方法来实现这一点,但显然这在v1.2中不推荐,应该只与ngRepeat一起使用 我的问题与此类似 但是,我也想知道是否有一种方法可

我需要列出、编辑和删除实体。我对每个操作都有不同的看法。我想知道,在这些操作中使用相同的角度控制器是否是一种好的做法,或者每个操作应该有一个单独的控制器

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

我的问题与此类似


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

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

您的服务将如下所示:

(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;
    })
}());

我在这里得到了答案:


显然,为每个视图使用不同的控制器是一个很好的实践,它不应该作为服务工作。这对于从MVC/WebAPI进入angular的人来说是完全不同的。

我已经设置了服务,我的问题更多的是使用同一个控制器进行不同的CRUD操作。在这种情况下,您必须在主控制器中创建一个函数对象,您可以在index.html中定义该对象。不过,我建议您选择服务,因为它易于理解,并且代码更加灵活。任何与业务相关的逻辑都应与控制器分离: