난에

2017-01-30 2 views
0

Main.js난에

$routeProvider 
    .when('/home', { 
     templateUrl: 'home.html', 
     controller: 'StudentController' 
    }) 
    .when('/viewStudents', { 
     templateUrl: 'viewStudents.html', 
     controller: 'StudentController' 
    }) 
    .when('/viewTeacher', { 
     templateUrl: 'viewTeacher.html', 
     controller: 'StudentController' 
    }) 
    .otherwise({ 
     redirectTo: '/home' 
    }); 

코드를 JS에 의해 트리거 routeChangeStart 이벤트 이벤트 모르거나 클릭 얻을 것이다 어떻게 다른 JS 사용자 방문 index.html을 홈 경로가 JS에서 해고

$rootScope.$on("$routeChangeStart", function(event, next, current){ 
       console.log(event); 
       //here i want to detect   
      }); 

& home.html을 ROUT은 다음 viewStudents.html 호출 버튼이보기

.otherwise({ 
      redirectTo: '/home' 
     }); 

첨가 전자 변경하고 viewStudents.html 내가 경로 JS으로 인해 변화 routeChangeStart 기능에서 얻거나

+0

event.type을 확인할 수 있습니다. Idk가 각을 전파한다면. – Lacrioque

답변

2
중 하나에 의해 트리거

routeChangeStart 이벤트 '$ rootScope. $ 방출'또는 $ rootScope 사용자가 클릭하는 방법

렌더링합니다 $ broadcast

이 이벤트 시스템을 사용하면 데이터 하위 컨트롤러를 상위로 전달할 수 있습니다.

브로드 캐스트 이벤트를 호출하면 $ on 이벤트가 호출됩니다.

컨트롤러로드시 한 번 호출됩니다. 그리고 당신은 그것을 funtion을 사용하여 외부 적으로 호출 할 수 있습니다.

app.controller('ChildCtrl', 
     function ChildCtrl ($rootScope) { 

     $rootScope.$emit('rootScope:emit', 'Emit!'); // $rootScope.$on 
     $rootScope.$broadcast('rootScope:broadcast', 'Broadcast'); // $rootScope.$on && $scope.$on 

    }); 

app.controller('ParentCtrl', 
    function SiblingOneCtrl ($rootScope) { 
    var myListener = $scope.$on('child', function (event, data) { 
     // do something 
     }); 
    }); 

app.controller('ParentCtrl', 
    function ParentCtrl ($scope) { 

    var myListener = $rootScope.$on('child', function (event, data) { 
     // do something 
     }); 
});