Alessandro Dimera
Alessandro Dimera

Reputation: 1

controller pass $scope value to another controller

I'm very new to AngularJS, how can I pass input scope from first controller to the second controller for the data $scope.requestURL

I've search about the service method but I have no idea how to apply it.

    .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;
   });
   }]);

Upvotes: 0

Views: 69

Answers (2)

pro
pro

Reputation: 792

Here is a quick solution: ..you don't have to use the $http core service for your case:

You can also read more about angular's constant service..

(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);

Upvotes: 1

Jayan
Jayan

Reputation: 21

Try setting it to $rootScope.requestURL and access it from the second controller.

Upvotes: 0

Related Questions