angularjs函数可在整个应用程序中访问

angularjs函数可在整个应用程序中访问,angularjs,scope,angularjs-scope,Angularjs,Scope,Angularjs Scope,现在我有了一些处理angularjs的经验,我经常想知道如何在整个应用程序中使用全局函数(通常在许多控制器中使用)。 我的问题是$scope只能在它的控制器中访问,我可以想象一个将这些函数添加到$rootScope的解决方案,但是现在我只在$rootScope中添加了变量,我不知道如何添加函数,特别是,在何处添加函数。如果您在控制器上使用它,似乎是一个很好的选择。定义之后,您可以使用依赖项注入在控制器中使用它 这是关于使用服务的最简单的代码段,但是还有其他定义它们的方法。他们解释得很好 如果您在

现在我有了一些处理angularjs的经验,我经常想知道如何在整个应用程序中使用全局函数(通常在许多控制器中使用)。
我的问题是$scope只能在它的控制器中访问,我可以想象一个将这些函数添加到$rootScope的解决方案,但是现在我只在$rootScope中添加了变量,我不知道如何添加函数,特别是,在何处添加函数。

如果您在控制器上使用它,似乎是一个很好的选择。定义之后,您可以使用依赖项注入在控制器中使用它

这是关于使用服务的最简单的代码段,但是还有其他定义它们的方法。他们解释得很好


如果您在控制器上使用它,则它似乎是一个应用程序的候选。定义之后,您可以使用依赖项注入在控制器中使用它

这是关于使用服务的最简单的代码段,但是还有其他定义它们的方法。他们解释得很好


您可以使用注入任何需要上述功能的控制器的服务。但是,如果希望在
$rootScope
上定义函数,可以执行以下操作:

app.run(function ($rootScope) {
    $rootScope.add = function (a, b) {
        return a + b;
    }
});
然后,您可以在控制器中简单地使用此函数作为

app.controller('Ctrl', function($scope) {
    $scope.mySum = $scope.add(5, 7);
});

这是一个工作的小提琴

您可以使用一个服务,该服务被注入任何需要上述功能的控制器中。但是,如果希望在
$rootScope
上定义函数,可以执行以下操作:

app.run(function ($rootScope) {
    $rootScope.add = function (a, b) {
        return a + b;
    }
});
然后,您可以在控制器中简单地使用此函数作为

app.controller('Ctrl', function($scope) {
    $scope.mySum = $scope.add(5, 7);
});

这是一把工作小提琴

我的问题最初是为了在控制器上使用它。你能为服务提供一个全局可用功能的例子吗,比如说
检查电子邮件格式()
选择菜单(项)
?您可以对
$scope
$rootScope
应用一个方法,因为它们本质上是对象,因此您可以指定如下方法:
$scope.foo=function(){console.log('bar');}。这将在您分配此方法到的控制器作用域的子控制器中可用。我的问题最初是为了在控制器上使用它。你能为服务提供一个全局可用功能的例子吗,比如说
检查电子邮件格式()
选择菜单(项)
?您可以对
$scope
$rootScope
应用一个方法,因为它们本质上是对象,因此您可以指定如下方法:
$scope.foo=function(){console.log('bar');}。这将在作为您分配此方法到的控制器作用域的子控制器中可用。