javascript – Angular.js:.value()是设置应用程序常量和如何在控制器中检索它的正确方法

你好,我正在看一些angular.js视频,并看到value()方法用于设置一种模块范围的常数。例如,可以设置Angular-UI库的配置如下:(coffeescript)

angular.module('app',[])
.value "ui.config", 
  tinymce:
    theme: 'simple'
    width: '500'
    height: '300'

我的应用程序目前看起来像这样:

window.app = angular.module("app", [ 'ui'])

.config(["$routeProvider", ($routeProvider) ->
  $routeProvider
  .when "/users",
    templateUrl: "assets/templates/users/index.html"
    controller: IndexUsersCtrl

  .otherwise redirectTo: "/users"

])

.value 'csrf', $('meta[name="csrf-token"]').attr('content') #<---- attention here

IndexUsersCtrl = ($scope) ->
  $scope.users = gon.rabl
  console.log "I want to log the csrf value here" #<---- then attention
IndexUsersCtrl.$inject = ['$scope']

但是我似乎无法通过点击app应用程序模块对应的“app”变量来获得这个值。

我在这里读到ST和在angularjs的谷歌组,一种方法来共享通用代码btwn控制器是通过一个服务,这个概念也适用于这里吗?

谢谢!

Module.value(key,value)用于注入一个可编辑的值,
Module.constant(key,value)用于注入一个常量值

两者之间的区别不是你不能编辑常量,而是你不能用$ provide拦截一个常量并注入别的东西。

// define a value
app.value('myThing', 'weee');

// define a constant
app.constant('myConst', 'blah');

// use it in a service
app.factory('myService', ['myThing', 'myConst', function(myThing, myConst){
   return {
       whatsMyThing: function() { 
          return myThing; //weee
       },
       getMyConst: function () {
          return myConst; //blah
       }
   };
}]);

// use it in a controller
app.controller('someController', ['$scope', 'myThing', 'myConst', 
    function($scope, myThing, myConst) {
        $scope.foo = myThing; //weee
        $scope.bar = myConst; //blah
    });
http://stackoverflow.com/questions/13015523/angular-js-is-value-the-proper-way-to-set-app-wide-constant-and-how-to-retri

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:javascript – Angular.js:.value()是设置应用程序常量和如何在控制器中检索它的正确方法