[英]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.