2016-05-09 3 views
0

У меня есть проект, который является одностраничным приложением. Так что я использую угловой маршрут js. В первом контроллере у меня есть $ область действия value.the же значение, я должен использовать в другом контроллереИспользование маршрута angularjs Как я могу получить значение области в другом контроллере?

здесь подаст controller.js

var module = angular.module("sampleApp", ['ngRoute']); 

    module.config(['$routeProvider', 
     function($routeProvider) { 
      $routeProvider. 
       when('/route1', { 
        templateUrl: 'http://localhost/MyfirstApp/welcome', 
        controller: 'RouteController1' 
       }). 
       when('/route2', { 
        templateUrl: 'http://localhost/MyfirstApp/result', 
        controller: 'RouteController2' 
       }). 
       otherwise({ 
        redirectTo: '/' 
       }); 
     }]); 

    module.controller("RouteController1", function($scope) 
    { 
     $scope.value="Athira" 


    }) 
    module.controller("RouteController2", function($scope) { 
    $scope.text=$scope.value + "Sandeep" 
    }) 

На странице результатов он должен показать, как " Атхира Sandeep»

спасибо за любую помощь

+4

Возможный дубликат [AngularJS: Как передать переменные между контроллерами?] (Http://stackoverflow.com/questions/12008908/angularjs-how-can-i-pass-variables-between-controllers) –

+0

, что используя службы, которые они объяснили. Я хочу это с помощью маршрутизатора – Athi

+0

@athi не уверен, что вы имеете в виду, говоря «я хочу это с помощью маршрутизатора» –

ответ

0

Используйте сервис для обмена данными между контроллерами. Другим вариантом могут быть излучатели событий, которые я лично не поклонник, потому что он заполняет rootScope (в данном случае) множеством событий.

Что вы могли бы сделать это

angular.module('app',[]) 
.factory('SharedScope',function(){ 
var fac = this; 
var scope = ""; 
var sharedScope = { 
getScope : function(){ 
return fac.scope; 
}, 
setScope: function(scope){ 
fac.scope = scope 
} 
}; 
return sharedScope; 
}) 
.controller('Ctrl1',function('SharedScope'){ 
SharedScope.setScope("Angular"); 
}) 
.controller('Ctrl2',function('SharedScope'){ 
var data = SharedScope.getScope(); 
$scope.text = data + " is awesome"; //would get Angular is awesome 
}); 

Надеется, что это помогает.