我的$rootScope
myApp.run(['$rootScope','$location', function($rootScope,$location){
$rootScope.myFunction = function(){
//do something
};
}]);
我需要将myFunction
移至angular.constant
。我该怎么做?
答案 0 :(得分:1)
只需使用constant
angular.constant(name, function)
即可
angular.module('example', []);
angular.module('example')
.constant('myFunction', myFunction);
function myFunction() {
return 'foobar';
}
angular.module('example')
.controller('ExampleController', ['myFunction', ExampleController]);
function ExampleController(myFunction) {
this.text = myFunction();
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="example">
<div ng-controller="ExampleController as vm">{{vm.text}}</div>
</div>
但是,虽然您可以将任何内容注册为constant
(函数,对象......),但请注意其目的是保存少量应用程序范围的常量,如主机域。对于实际的业务逻辑,我总是建议使用angular.service
将功能分组为有意义的模块。