AngularJS常量配置

时间:2015-10-13 10:39:45

标签: angularjs

我的$rootScope

附加了一个功能
myApp.run(['$rootScope','$location', function($rootScope,$location){

    $rootScope.myFunction = function(){
     //do something
    };

}]);

我需要将myFunction移至angular.constant。我该怎么做?

1 个答案:

答案 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将功能分组为有意义的模块。