Javascript AngularJS-处理属性文件

Javascript AngularJS-处理属性文件,javascript,angularjs,Javascript,Angularjs,我试图用angular读取一个属性文件,有必要将这个文件放在我项目的根目录下,而不需要任何angular文件,只需要一个简单的文件,比如java 这就是我正在做的 创建angular.properties文件 角特性 这是我调用服务方法的控制器: 控制器 这是我的服务课: 服务 但是在我的服务类中,我有两个异步运行的$http,因为这个原因,我无法获得url的值,其他一切都可以完美运行。如何解决这个问题?也许还有别的办法。我不想创建一个常量类,因为这个文件位于项目的根目录下,它将为其他人配置,他

我试图用angular读取一个属性文件,有必要将这个文件放在我项目的根目录下,而不需要任何angular文件,只需要一个简单的文件,比如java

这就是我正在做的

创建angular.properties文件

角特性

这是我调用服务方法的控制器:

控制器

这是我的服务课:

服务


但是在我的服务类中,我有两个异步运行的$http,因为这个原因,我无法获得url的值,其他一切都可以完美运行。如何解决这个问题?也许还有别的办法。我不想创建一个常量类,因为这个文件位于项目的根目录下,它将为其他人配置,他们不需要进入很多文件夹并检查代码、搜索和编辑。有什么想法吗?

你会用grunt吗?如果是这样,我已经使用grunt插件grunt ng常量和grunt属性读取器完成了这个任务。在grunt构建过程中,它会根据配置文件中的属性生成一个angular模块,然后您可以简单地依赖该模块并在angular应用程序中的任何需要的地方插入常量。@DavidA感谢您的评论,我已经阅读了ng constant非常好的插件!我可能会在我的项目的未来使用它,但阅读有关它的文章,我在ENV或生产模式下的常量值是在一个非常复杂的文件上设置的,对于一个简单的用户来说不是我或你,它进入我的包中,非常小心地为一些不太擅长javascript或angular的人编辑值。出于这个原因,我试图让普通用户/工作人员更新一些变量变得简单。。。让getValuesFromProperties返回一个承诺,然后在all中等待该承诺,并仅在解决$http请求后执行该请求。如果您有其他依赖于这些属性的代码,那么您将不得不到处处理承诺。或者,您可能会考虑使用像角延迟引导和延迟这样的东西,甚至初始化角度,直到检索到属性文件,然后您知道它总是可用的,并且不必在异步问题上工作。
{ 
    "url": "http://localhost"
}
captchaService                  
    .all()                      
    .then(function(data) {      
        ...
    }, function (data) {
        ...
}); 
'use strict';

angular.module('app.service', [])

.factory('myService',
    ['$http', '$q',
    function ($http, $q) {

        var _URL = "";

        function getValuesFromProperties() {

            $http({
                method : 'GET',
                url : 'angular.properties'
            }).success(function (data, status, headers, config) {
                _URL = data.url;
            }).error(function (data, status, headers, config) {
                ...
            });

        }

        function all() {

            getValuesFromProperties();

            var deferred = $q.defer(),
                promise = deferred.promise;

            sessionStorage.removeItem('X_CAPTCHA_TOKEN');

            $http({
                method : 'POST',
                url : _URL
            }).success(function (data, status, headers, config) {
                ...
            }).error(function (data, status, headers, config) {
                ...
            });

            return promise; 
        }

        return {
            all : all,
            getValuesFromProperties : getValuesFromProperties
        };

    }]);