如何在2个配置文件之间进行交互

时间:2018-03-16 19:27:22

标签: javascript angularjs

我有一个 config.prop 文件,该文件是从 ngConfig.js 文件中调用的,该文件是一个服务文件。此prop文件包含我在第二个服务文件 ngContent.js 中需要的URL。

这些文件是从解决单独调用的。

$routeProvider.
when('/login', {
    templateUrl: 'views/login.html',
    controller: LoginController,
    resolve: {
        urlData: function(Config) {
            return Config.prop().then(function(response) {
                return response;
            });
        },
        contentData:function(Content){
            return Content.prop().then(function(response){
                return response;
            });
        }
    }
})

我从 urlData 获得的响应,即 ngConfig.js 解析我的响应是 config.prop 的内容。我在 ngContent.js 文件中需要此响应。

ngConfig.js 的内容为

angular.module('ngConfig', [])
.service('Config', function ($http, $rootScope, $document) {

    //API calling method for all method
    this.prop = function () {
        try {
            //API calling
            var promise = $http({
                method: 'GET',
                dataType: "application/json",
                data: 'json',
                cache: false,
                url: 'config.prop',
            }).then(function (response) {
                return response;
            }, function (response) {
                return response;
            });
        } catch (ex) {
            return ex;
        }
        return promise;
    };

});

ngContent.js 的内容为

angular.module('ngContent', [])
.service('Content', function ($http, $rootScope, $document) {

    //API calling method for all method
    this.prop = function () {
        try {
            //API calling
            var promise = $http({
                method: 'GET',
                dataType: "application/json",
                data: 'json',
                cache: false,
                url: API_URL
            }).then(function (response) {
                return response;
            }, function (response) {
                return response;
            });
        } catch (ex) {
            return ex;
        }
        return promise;
    };

});

API_URL 出现在 config.prop 文件中,该文件是从 ngConfig.js 文件中调用的。

我希望我能够清楚地表达我的问题。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以将 urlData 传递给contentData,然后将其传递给 Content.prop()

contentData:  function(Content, urlData){
    return Content.prop(urlData).then(function(response){
        return response;
       });
    }


修改

  

这不适用于 $ routeProvider ,您必须使用ui-router的 $ stateProvider 。   我用它并且它有效。使用方法与上面讨论的相同。