2017-01-30 44 views
0

Main.js我將如何得到由JS觸發routeChangeStart事件事件知道或單擊

$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將呈現

我將如何在該路線由於更改爲JS routeChangeStart功能獲得或按用戶

+0

你可以嘗試檢查event.type。 Idk如果角度傳播。 – Lacrioque

回答

2
通過任一觸發

routeChangeStart事件「$ rootScope。$發出」或$ rootScope點擊$ broadcast

使用此事件系統是將數據子控制器傳遞給父級。

當您調用廣播事件時,$ on事件將會調用。

當您的控制器加載時調用一次。你可以使用函數在外部調用它。

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 
     }); 
});