2017-01-30 16 views
0

Main.jsКак я познакомлюсь в случае события routeChangeStart вызванного 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

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

когда пользователь визита index.html домой маршрут уволен из JS & home.html добавляют ввиду

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

есть кнопка, которая затем назвать viewStudents.html маршрут е изменится и viewStudents.html будет оказана

, как я буду получать в функции routeChangeStart, что маршрут изменяется из-за Js или нажмите пользователем

+0

вы можете попробовать проверить event.type. Idk, если угловое распространение. – Lacrioque

ответ

2

routeChangeStart событие вызвано либо «$ rootScope. $ испускают» или $ rootScope . $ broadcast

Использование этой системы событий предназначено для передачи дочернего контроллера данных родительскому.

, когда вы вызываете широковещательное событие, тогда вызывается $ on event.

это зов один раз, когда ваш контроллер загружается. и вы можете вызвать его извне, используя 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 
     }); 
});