반응형
다른 ng뷰에 데이터를 전달하고 컨트롤러 간에 데이터를 유지할 수 있는 우수한 설계
저는 AngularJS에서 개발을 시작했습니다.이것이 나의 부분적인 견해 사이에 데이터를 전달하기 위한 적절한 설계인지 헷갈린다.
지금 로더 페이지가 있어서 요청을 하고 있습니다.
function PeopleController($scope,$http,$location){
$http.get('/location/-79.18925/43.77596').
success(function(data){
$scope.savePeopleResponse(data);
$location.url('/test');
});
}
그런 다음 /test용으로 로드되는 뷰에서
그냥 전화하는 거예요
<div ng-controller="resultController">
<div class="blueitem">{{getResultForPeople()|json}}</div>
</div>
[결과 컨트롤러]
function resultController($scope){
$scope.getResultForPeople = function(){
return $scope.getPeopleResponse();
}
}
savePeopleResponse 및 getResultForPeople은 rootScope에서 "캐시"됩니다.
app.run(function($rootScope) {
var peopleResponse = {};
$rootScope.savePeopleResponse = function(data) {
peopleResponse = data;
console.log(data);
}
$rootScope.getPeopleResponse = function(){
return peopleResponse;
}
});
보시다시피 이 어플리케이션이 점점 커지면 매우 복잡해집니다.컨트롤러 전체에서 데이터를 유지할 수 있도록 데이터를 처리하는 가장 좋은 방법은 무엇입니까?
이 블로그에서 자세히 설명한 대로 자체 서비스를 작성하면 여러 컨트롤러에 걸쳐 데이터를 유지할 수 있습니다.이 질문도 참고할 수 있습니다.
고객님의 경우,savePeopleResponse
그리고.getPeopleResponse
서비스에 접속하고 싶은 컨트롤러에 서비스를 주입합니다.
angular.module('myApp', [])
.factory('peopleService', function () {
var peopleResponse = {};
return {
savePeopleResponse:function (data) {
peopleResponse = data;
console.log(data);
},
getPeopleResponse:function () {
return peopleResponse;
}
};
});
컨트롤러의 경우 다음과 같습니다.
function resultController ($scope, peopleService) {
$scope.getResultForPeople = peopleService.getPeopleResponse;
}
이 코드 예에서는 다음을 포함하도록 합니다.ng-app="myApp"
언급URL : https://stackoverflow.com/questions/12574765/better-design-for-passing-data-to-other-ng-views-and-persisting-it-across-contr
반응형
'programing' 카테고리의 다른 글
Axios 가로채기 및 비동기 로그인 (0) | 2023.03.13 |
---|---|
Spring Boot Application 내부 구조 (0) | 2023.03.13 |
Oracle 페이지 번호 매기기 베스트 프랙티스 (0) | 2023.03.13 |
Wordpress admin이 css/js를 로드하지 않습니다. (0) | 2023.03.13 |
우체국에서 모든 json의 필드를 접을 수 있는 방법이 있나요? (0) | 2023.03.13 |