簡體   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