在 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
在简单的 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