现在我有一些处理 angularjs 的经验我经常想知道如何在整个应用程序中拥有全局函数(在许多控制器中常用)可访问性。我的问题是$scope只能在其控制器中访问,我可以想象一个将这些函数添加到$rootScope的解决方案,但是现在我只向$rootScope添加了变量,我不知道如何添加函数,特别是在哪里去做。
问问题
2057 次
2 回答
3
如果您在控制器上使用它,似乎是Service的候选者。定义后,您可以使用依赖注入在控制器中使用它。
这是使用服务的最简单的片段,但还有其他定义它们的方法。他们在这里得到了很好的解释
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());
}
于 2013-09-19T09:13:40.177 回答
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);
});
这是$rootScope中的一个工作小提琴函数
于 2013-09-19T10:03:05.987 回答