javascript - 我将如何了解JS触发的routeChangeStart事件或点击事件

标签 javascript angularjs routes angular-ui-router ngroute

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中的代码

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

当用户访问index.html home路由时,JS触发并添加到 View 中的home.html

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

有一个按钮调用 viewStudents.html 然后路由会改变并且 viewStudents.html 将呈现

我如何在routeChangeStart函数中获取由于js或用户点击而导致路线发生变化的信息

最佳答案

由“$rootScope.$emit”或$rootScope.$broadcast触发的routeChangeStart事件

此事件系统的用途是将数据子 Controller 传递给父 Controller 。

当您调用广播事件时,$on 事件将调用。

当你的 Controller 加载时,它会被调用一次。您可以使用函数在外部调用它。

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

关于javascript - 我将如何了解JS触发的routeChangeStart事件或点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41937707/

相关文章:

angularjs - 有没有获取 window.history.back() 的快捷方式

ruby-on-rails:通过路由和 link_to 传递参数

ruby-on-rails - Rails 3.0.4 中没有路由匹配

javascript - "require"或 "import"模块化 javascript ASP.Net MVC 5、Visual Studio 2015 的最简单方法

javascript - MVC jquery.dataTables 无法获取未定义或空引用的属性 'className'

javascript - 使用 SVG 和 Angular JS 的三 Angular 形进度条

javascript - md-tab 中 Angular-Datatables 的滚动功能

javascript - Angular JS+Laravel -- 在 URL::route 外观中回显 Angular 数据

javascript - 如何用 d3 表示可变嵌套深度的数组

ruby-on-rails-3.2 - Rails 3.2 路由 : multiple defaults