Javascript 角度控制器中的Access Rails环境变量
我有一个名为EnvConfigurationService的模块,js.erb:Javascript 角度控制器中的Access Rails环境变量,javascript,ruby-on-rails,angularjs,environment-variables,Javascript,Ruby On Rails,Angularjs,Environment Variables,我有一个名为EnvConfigurationService的模块,js.erb: #../angular/services/config/EnvConfigurationService,js.erb angular.module('mgApp.services').factory('EnvConfigurationService', function () { return { getMySecretKey: function () { return "<%= E
#../angular/services/config/EnvConfigurationService,js.erb
angular.module('mgApp.services').factory('EnvConfigurationService', function () {
return {
getMySecretKey: function () {
return "<%= ENV['MY_SECRET_KEY'] %>";
}
}
});
但是,返回的字符串始终为空。有什么想法可能是错的/遗漏的吗
提前感谢
选项3表示,如果要使用类似的插值,可能需要调用本例所示的.html\u safe
itemsApp.service('itemsAppInitializer', function(){
return <%= @item.to_json.html_safe %>;
});
itemsApp.service('itemsAppInitializer',function(){
返回;
});
在我看来,如果你愿意的话,你可以用另一种方式来解决这个问题。我将在rails中创建一个路由,在响应中向您返回env变量
然后,每当服务第一次需要提供env变量时,您可以使用
$http.get()
,并在服务调用中添加cache:true
选项,从路由/控制器获取该数据,只需获取一次。添加html\u safe即可,@Sean Larking。谢谢-我喜欢。这也是那篇文章的支柱。
itemsApp.service('itemsAppInitializer', function(){
return <%= @item.to_json.html_safe %>;
});