2015-10-19 90 views
0

我很新的AngularJS,我怎么可以通过输入范围从第一控制器到第二个控制器的数据$ scope.requestURL

我搜索关于服务方法,但我不知道如何应用它。

.controller('ZipController', ['$scope', function($scope) { 
    $scope.zipCode = '10028'; 

    $scope.setURL = function() { 
    $scope.requestURL = 'http://congress.api.sunlightfoundation.com/legislators/locate?zip=' + $scope.zipCode + '&apikey=xxxxx'; 
    }; 

    }]) 

    .controller('ListController', ['$scope', '$http', 
    function($scope, $http) { 
    $http.get($scope.requestURL).success(function(data) { 
    console.log(data.results); 
    $scope.congress = data.results; 
    }); 
    }]); 
+0

说无需谈论代码就可以做什么,所以我们可以更好地理解您的问题。 –

+0

请花点时间学习如何使用服务。他们真的帮助组织和封装你的代码。可维护性和关注点以及所有爵士乐的分离。 – ryanyuyu

+0

您好史蒂夫,我只是想知道如何通常URL请求从输入字段组装,并进入&http请求 –

回答

0

尝试将其设置为$ rootScope.requestURL并从第二个控制器访问它。

1

这里是一个快速的解决方案:..你不必使用$ HTTP核心的服务,为您的情况:

您也可以阅读更多有关角的常数服务..

(function(angular) { 
    var app = angular.module('myServiceModule', []); 
    app.controller('ZipController', function($scope, myService) { 
     $scope.zipCode = '10028'; 
     myService.setFunc($scope.zipCode); 
     myService.zipCode = $scope.zipCode; 
    }); 
    app.controller('ListController', function($scope, myService) { 
     $scope.requestURL = myService.getFunc(); 
    }); 
    app.factory('myService', function() { 
     var zipCode; 
     var setFunc = function(zip) { 
      zipCode = zip; 
     }; 
     var getFunc = function() { 
      return 'http://congress.api.sunlightfoundation.com/legislators/locate?zip=' + zipCode + '&apikey=xxxxx' 
     }; 
     return { 
      zipCode: zipCode, 
      setFunc: setFunc, 
      getFunc: getFunc 
     }; 
    }); 
})(window.angular); 
+0

感谢Pro ...我会尝试这个代码...我有点慢,你的代码应该给我洞察力。 –

+0

你应该接受它,如果它适合你的话 – pro

相关问题