如何在AngularJs控制器或服务中访问POJO属性

时间:2017-01-25 06:17:07

标签: angularjs spring-mvc spring-boot spring-cloud-config

我的serverName java类中有一个配置属性AppConfig,它从cloud config client获取值。此serverName值在Java类和AngularJS Services中使用。此serverName具有不同环境的不同值。

我的问题

目前,我正在使用pcf spring cloud config,其中不同的配置文件具有不同的值。所以访问Java的{​​{1}}类没有问题,但在serverName我{strong> AngularJS service manually changing相应的serverNameenvironment在将其部署到相应环境之前的值。

我的问题

是否可以访问serverName AppConfig AngularJS Service属性到我的@EnableConfigurationProperties @ConfigurationProperties @RefreshScope @Configuration public class AppConfig { @Value("${external.server.name}") private String serverName; }

AppConfig Java

external:
    server:
        name: localName

application.yml

angular.module('myApp').factory('myService', ['$http', '$q', '$window', function($http, $q, $window){
    var serverName = 'localName'; 
    // for each env deployment make sure the developer changes the value to respective env value, if not the service will fail
    .....
}

my_service.js

tail recursive

2 个答案:

答案 0 :(得分:3)

您可以创建自己的REST控制器,例如/ config,它返回服务器名称以及客户端可能需要的任何其他内容。 在此控制器中,您可以像在AppConfig中那样注入服务器名称。

更简单 如果您已经有一个控制器,在您需要服务器名称之前通过角度调用,您可以设置一个标题,例如' x-server-name'与值有关。

答案 1 :(得分:1)

斯特凡的回答对你想做的事情很有用。但如果它是您的应用程序服务器,您不应该需要服务器地址。 $http.get('api/getUser')$http.get(servername + '/api/getUser')相同。如果您需要超出"服务器名称的任何其他服务器端属性"在客户端;那么你可以申请斯特凡的答案。