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

问题描述 投票:2回答:2

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

My issue

目前我正在使用具有不同值的不同配置文件的pcf spring cloud config。所以Java类没有问题访问serverName,但在AngularJS service我是manually changing serverName值到各自的environment值,然后将它部署到各自的环境。

My Question

无论如何有访问serverName属性的AppConfig到我的AngularJS Service

AppConfig Java

@EnableConfigurationProperties
@ConfigurationProperties
@RefreshScope
@Configuration
public class AppConfig {
    @Value("${external.server.name}")
    private String serverName;
}

application.yml

external:
    server:
        name: localName

my_service.js

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
    .....
}
angularjs spring-mvc spring-boot spring-cloud-config
2个回答
3
投票

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

更简单如果您已经有一个控制器,在您需要服务器名称之前通过angular调用,您可以使用相关值设置类似'x-server-name'的标头。


1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.