2017-05-17 1 views
0

내 사이트의 모든 페이지에서 날짜를 설정하고 이러한 API API의 쇼 - 데이터를 기반으로합니다. 캘린더에서 새 페이지를 방문 할 때마다 (즉, 모든 페이지/컨트롤러에 개별 캘린더가 설정되어 있음) 날짜를 선택해야합니다. 그러나 일단 날짜를 선택하면 내가 방문하는 모든 페이지에서 동일하게 유지됩니다. 나는 나의 모든 페이지에 걸쳐 공통적 인메인 컨트롤러에서 일반 전화를 걸 수있는 방법

$scope.cb(moment().subtract(29, 'days'), moment());

에 대한, 즉 전화를 데 - 모든 컨트롤러는이 통화가 있습니다. 메인 컨트롤러에 무엇을 추가해야합니까? 또는 내 사이트의 모든 페이지에 대해 위의 호출에 대한 입력을 어떻게 전달할 수 있습니까?

이것이 올바른 방법일까요?!

답변

0

필요에 따라 날짜를 설정 한 다음 페이지에서 사용해야합니다.

방법 1 : $rootScope :이 각도에서 모든 $ 범위의 부모 범위입니다

는이를 위해 각도 두 가지 방법을 제공하고 있습니다. 그 위에 무엇이든 설정하면 모든 곳에서 발표됩니다.

// way to set the date 
$rootScope.selectedDate = // your date object; 

// way to fetch the date 
var date = $rootScope.selectedDate 

방법 2 : 서비스 : 각도는 단일 객체입니다 Service 개념을 제공한다. 한 번 설정하면 무엇이든 사용할 수 있습니다.

만들기 서비스 :

angular.module('someModule', []) 
.service('commonService', function() { 
    var selectedDate; 

    this.setDate = function(date) { 
     selectedDate = date; 
    } 

    this.getDate = function() { 
     return selectedDate; 
    } 

}); 

그것을 사용하는 방법 :

angular.module('someModule') 
.controller('someCntrl', function($scope, commonService) { 
    // way to set the date 
    var date = //some date; 
    commonService.setDate(date);  

}) 
.controller('otherCtrl', function($scope, commonService) { 

    // way to fetch date 
    var date = commonService.getDate(); 

}); 
관련 문제