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

时间:2013-09-19 09:07:35

标签: angularjs scope angularjs-scope

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

2 个答案:

答案 0 :(得分:3)

如果您在控制器上使用它,似乎是Service的候选者。定义后,您可以使用依赖注入在控制器中使用它。

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

var myApp = angular.module('myApp', []);

//define service
myApp.service('helloWorld', function() {
    this.sayHello = function() {
        return "Hello World!"
    };
});

//inject the service
function MyCtrl($scope, helloWorld) {
    alert(helloWorld.sayHello());
}

答案 1 :(得分:1)

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

app.run(function ($rootScope) {
    $rootScope.add = function (a, b) {
        return a + b;
    }
});

然后你可以在控制器中简单地使用这个功能

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

这是一个工作小提琴Function in $rootScope