0

angularjs에서 두 컨트롤러 사이에 공유 리소스를 만들려고합니다. 두 번째 컨트롤러에서 getData()를 사용하여 저장된 데이터를 가져오고 두 번째 컨트롤러 내에 데이터 테이블을 채 웁니다. 단순화를 위해 코드에서 데이터 표 부분을 생략했습니다.두 컨트롤러 간의 공유 기능 angularjs

다음은 두 개의 컨트롤러

(function(){ 
     var app = angular.module('adminCtrls',[]); 
     // Main Controller 
     app.controller('mainCtrl', function($scope, $http,testSrv){ 

     // Get the data form the phoenix database based on the query defined 
     // in db_size.php 
     $http.get('rest/admin/db_size.php').then(function(response){ 
     $scope.answers = response.data; 
     $scope.me = "$scope.answer"; 
      testSrv.setData($scope.me); 
     }); 
     }); 
     }) 

     // Modal Controller 
     app.controller('modalCtrl', function($scope,$http,testSrv){ 
     console.log(testSrv.getData()); 

     }); 

     }); 

    })(); // EOF 

내 컨트롤러 파일 다음은 내 각 응용 프로그램 파일

(function(){ 
    // Angular App 
    var app = angular.module('adminApp', ['ngRoute', 'adminCtrls', 'siteSrvs']); 
    // Routing 
    app.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider){ 

     // HTML5 Mode 
     $locationProvider.html5Mode({ 
      enabled: true 
     }); 

    }]); 

    })(); 

이 내 서비스입니다.

첫 번째 컨트롤러에 데이터를 설정하려고하고 두 번째 컨트롤러에서 동일한 데이터를 가져 오려고합니다.

두 번째 컨트롤러가 첫 번째 컨트롤러에 저장된 데이터를 볼 수 없습니다.

내가 모듈 삽입을 놓치고 있는지 알고 싶습니까?

<body ng-controller="MainCtrl"> 
    <p>Hello {{name}}!</p> 
    <div ng-controller="modalCtrl">{{data}}</div> 
</body> 

:

답변

0

난 당신이 코드에서 올바른 모든 것을 가지고 말할 것입니다, 당신은 단지 그것을 호출 할 수 있도록 뷰에 모달 컨트롤러를 결합해야합니다, 당신은 당신의 서비스에 가치를 볼 수 있습니다 그냥보기에서 인쇄 범위에 변수를 추가 :

// Modal Controller 
app.controller('modalCtrl', function($scope, $http, testSrv) { 
    $scope.data = testSrv.getData(); 
    console.log('modalCtrl',$scope.data); 
}); 

여기 스스로 그것을 밖으로 시도하는 plunker입니다.

+0

두 번째 컨트롤러에서 getData 메서드를 사용하여 데이터를 가져오고 두 번째 컨트롤러 내에 데이터 테이블을 채우려고합니다. 제 문제는 getData가 첫 번째 컨트롤러에 저장된 데이터를 표시하지 않는다는 것입니다. –

+0

간단하게 유지하기 위해 첫 번째 컨트롤러에있는 서비스에 대한 호출을 주석 처리했습니다. 오류가 발생하지 않는다면 setData가 실제로 호출되는지 확인하는 것이 좋습니다. 테스트를하거나 해당 호출에 대한 오류를 잡기 위해 해당 블록 외부의 setData를 호출 할 수 있습니다. – elvin

관련 문제