Angular Provider配置来自ng-init的数据

时间:2013-12-03 09:39:20

标签: angularjs angularjs-scope

我创建了一个Provider来将pusher javascript包装成angular。我想从我的play 2服务器配置我的推送键。现在,我使用ng-init传递密钥。但是我如何将此密钥分配给下面的提供者。我想从服务器传递推送密钥的原因是为开发和产品服务器使用不同的密钥。

page.scala.html

  <div data-ng-cloak>
    <div data-ng-view data-ng-init="pusherKey=@App.pusherAppKey()"></div>
  </div>

配置pusherProvider

  mod.config(["pusherProvider", function(pusherProvider) {
    pusherProvider.set('token', 'how do I use pusherKey here');
  }]);

1 个答案:

答案 0 :(得分:1)

由于您无论如何都使用服务器端模板,您可以尝试将密钥设置为全局变量:

<script>
    var pusherKey = "@App.pusherAppKey()";
</script>

从JS中使用它:

mod.config(["pusherProvider", function(pusherProvider) {
    pusherProvider.set('token', pusherKey); // pusherKey here is the global
}]);

我发现以这种方式保留全局变量并不会造成伤害。 (我也用这种方式保存用户信息。)