在 AngularJS 中创建一个全局对象

Make an Object global in AngularJS

在简单的 javascript 中,我可以将类似的函数分组到一个对象中,如下所示:

var Monolog = {

  notify: function(title, message) {

      // Do something with title and message
    },

  confirm: function(title, message, func) {

      // Do something with title, message and func
    }
}

我可以这样访问:

Monolog.notify('Error', 'Error message');

现在,使用 AngularJS,我需要 Monolog 中的函数来更改 $scope.variable,这意味着我要么必须使用服务,要么必须使用 rootScope。

我该怎么做?

服务是更好的选择。您应该尝试通过以下方式使用服务 $rootScope 因为它们使代码更具可重用性和可读性。在大多数情况下,使用全局范围也是个坏主意。

更改您的 $scope.variable 可以通过服务中的 setter 和 getter 来完成。

编辑

还有 @Adrian 添加:

Services (which are injectable) improve testability