2015-10-27 3 views
4

Я работаю с AngularJS Google Maps и вам необходимо настроить api_key в модуле config (вопрос аналогичен this one).Как передать переменные в конфигурацию AngularJs

Мой вопрос о настройке AngularJs модулей

Это my test pen:

var app = angular.module('myapp', []) 
 
    /* 
 
    // HERE ????? 
 
    // I try to pass a value from the HTML (server side) 
 

 
    .config(function($window){ 
 
    console.log($window.memKey); 
 
    }) 
 

 
    */ 
 
    .controller('MainCtrl', ['$scope', '$window', function($scope, $window) { 
 
    $scope.name = $window.memName; 
 
    $scope.city = $window.memCity; 
 

 
    $scope.getMember = function(id) { 
 
     console.log(id); 
 
    }; 
 
    }]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<script type="text/javascript"> 
 
    var memKey = 'bb7de28f-0f89-4f14-8575-d494203acec7'; 
 
    var memName = 'John'; 
 
    var memCity = 'New-York'; 
 
</script> 
 

 
<div ng-app="myapp" ng-controller="MainCtrl"> 
 
    Member name: {{name}} <br> 
 
    Member city: {{city}} 
 
</div>

Как можно выздороветь значение memKey из (сервера) стороны HTML?

ответ

1

Ваш memKey находится в доступном объеме, в зависимости от того, как вы его объявили.

вобще

app.config(function(){ 
    console.log(memKey); 
    }) 

См snippet

+0

волшебный! вы правы ... теперь есть более «правильный» способ *** передать *** значения в конфигурационную функцию – Serge

+0

, вы можете передавать провайдерам функции конфигурации, где они могут быть услугами, значениями или константами. Последние два могут быть полезны для вас. См. Https://gist.github.com/demisx/9605099 для описания или каждого из них, а затем посмотрите, какой из них больше подходит для вас. Наверное, константа. Затем вы можете использовать их в качестве параметров в конфигурации функции –

+0

, если столбец «configuratle» означает, что они недоступны в '.config', потому что примеры находятся на контроллерах, а не на конфигурационных функциях ... – Serge

1

Вы можете получить доступ к существующей угловой модуль, если вы не используете массив впрыска. После того, как у вас есть ссылка, вы можете объявить константы, например:

<script type="text/javascript"> 
var app = angular.module('myapp'); 
app.constant('memKey', 'bb7de28f-0f89-4f14-8575-d494203acec7'); 
app.constant('memName', 'John'); 
app.constant('memCity', 'New-York'); 
//Or do them as one config object 
</script> 

-

.config(['memKey', 'memName','memCity' function(memKey, memName, memCity) { 
    }]); 
+0

внимание. Значения должны использоваться не в ** '.controller' **, а в **' .config' ** part – Serge

+0

Вы можете вставлять константы в config, они сначала инициализируются. Обновлен мой ответ, чтобы отразить ваш реальный вопрос. –

+0

Я пробовал это, не работал: http://codepen.io/anon/pen/dYeGbN?editors=101 – Serge

Смежные вопросы