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