Olá, eu estava assistindo a alguns vídeos do angular.js e vi que o método value () foi usado para definir um tipo de constante em todo o módulo. por exemplo, pode-se definir a configuração da biblioteca Angular-UI assim: (coffeescript)
angular.module('app',[])
.value "ui.config",
tinymce:
theme: 'simple'
width: '500'
height: '300'
E meu aplicativo está atualmente parecido com este:
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']
Mas não consigo obter esse valor tocando na variável 'app' que corresponde ao módulo do app.
Eu li aqui no ST e no grupo do Google do angularjs que uma maneira de compartilhar controladores btwn de código comum é por meio de um serviço. Esse conceito se aplica aqui também?
Obrigado!
javascript
angularjs
Nik So
fonte
fonte
Respostas:
Module.value(key, value)
é usado para injetar um valor editável,Module.constant(key, value)
é usado para injetar um valor constanteA diferença entre os dois não é tanto que você "não pode editar uma constante", é mais que você não pode interceptar uma constante com $ fornecer e injetar outra coisa.
fonte
Recentemente, eu queria usar esse recurso com Karma dentro de um teste. Como Dan Doyon aponta, a chave é que você injetaria um valor como um controlador, serviço, etc. Você pode definir .value para muitos tipos diferentes - strings, matrizes de objetos, etc. Por exemplo:
myvalues.js um arquivo contendo valor - certifique-se de incluí-lo em seu arquivo conf do karma
]);
test / spec / mytest.js - talvez este seja um arquivo de especificações Jasmine carregado pelo Karma
fonte
Você precisa fazer referência
csrf
em seu controladorIndexUsersCtrl = ( $scope, csrf )
fonte