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>
:
두 번째 컨트롤러에서 getData 메서드를 사용하여 데이터를 가져오고 두 번째 컨트롤러 내에 데이터 테이블을 채우려고합니다. 제 문제는 getData가 첫 번째 컨트롤러에 저장된 데이터를 표시하지 않는다는 것입니다. –
간단하게 유지하기 위해 첫 번째 컨트롤러에있는 서비스에 대한 호출을 주석 처리했습니다. 오류가 발생하지 않는다면 setData가 실제로 호출되는지 확인하는 것이 좋습니다. 테스트를하거나 해당 호출에 대한 오류를 잡기 위해 해당 블록 외부의 setData를 호출 할 수 있습니다. – elvin