繁体   English   中英

从Angular Controller访问Rails env变量

[英]Access Rails env variable from Angular Controller

我有以下模块名为EnvConfigurationService,js.erb:

#../angular/services/config/EnvConfigurationService,js.erb

angular.module('mgApp.services').factory('EnvConfigurationService', function () {
return {
    getMySecretKey: function () {
        return "<%= ENV['MY_SECRET_KEY'] %>";
    }
  }
});

目的是从不同的角度和常规js类提供对“MY_SECRET_KEY”的访问。 与userController.js上的以下内容类似:

angular.module('mgApp.controllers').controller('userController', ['$scope', '$http', 'EnvConfigurationService', function($scope, $http, EnvConfigurationService) {
  var uri = EnvConfigurationService.getMySecretKey();
  ...
}]);

仍然,返回的字符串始终为空。 什么可能是错误/缺失的想法?

提前致谢

该网站显示了4种将信息从Rails传递给Angular的好方法

选项编号3指出,如果您要使用这样的插值,您可能需要调用.html_safe如本例所示。

itemsApp.service('itemsAppInitializer', function(){
  return <%= @item.to_json.html_safe %>;
});

在我看来,如果你愿意的话,还有另外一种方法可以解决这个问题。 我会在rails中创建一个路由,在响应中返回env变量。

然后,只要服务需要第一次提供env变量,就可以使用$http.get()并在服务调用中添加cache: true选项以从路由/控制器获取数据,并且只需要获取它一旦。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM