Javascript 当路由到特定路由Angularjs时运行函数?

Javascript 当路由到特定路由Angularjs时运行函数?,javascript,angularjs,Javascript,Angularjs,我正在用angularjs开发一个应用程序。我需要做的是,当路由更改为特定路由时,基本上运行一些脚本。我知道,我可以为每个路由定义一个单独的控制器。因为,一些路由应该有共享数据,我在它们之间共享了一个控制器 formApp.config(function($routeProvider) { $routeProvider .when('/firstUrl',{ templateUrl : 'firstURL', control

我正在用angularjs开发一个应用程序。我需要做的是,当路由更改为特定路由时,基本上运行一些脚本。我知道,我可以为每个路由定义一个单独的控制器。因为,一些路由应该有共享数据,我在它们之间共享了一个控制器

  formApp.config(function($routeProvider) {
       $routeProvider

      .when('/firstUrl',{
          templateUrl : 'firstURL',
          controller : 'mainController'
       })

      .when('/secondURL' , {
          templateUrl : 'secondURL',
          controller : 'mainController'
       }) 

     }).run(function($rootScope, $location) {
         $rootScope.$on("$routeChangeStart", function(event, next, current) {
         if ( signed_in == false ) {

             $location.path("/login");
          }
      });
  });
上面是我的配置代码, 我的问题:我需要知道是否可以修改run()函数中的代码,以便根据用户重定向到的路径运行某些脚本

或者,如果这不是正确的方法,请纠正我如何解决这个问题


提前感谢

我建议每个路线至少创建一个控制器。它使代码更易于管理。 然后,您可以定义一个init函数,该函数在每个控制器加载时运行

要在控制器之间共享数据,您需要创建一个服务,这是正确的方法,而不是为多个路径共享同一个控制器

它还将在开发时为您提供更大的灵活性

更新 示例 (命名仅用于示例目的。请尝试从不使用arrbitrary命名。)

#服务

angular.module('myService', [])

.factory('mSrv',[ function() {

    return {

        data: {
            'first_name': 'John',
            'last_name': 'Doe'
        }

    };

}])

;
#控制器1

angular.module('initMyCtrl1', ['myService'])

    .controller('InitMyCtrl1', function( $scope, mSrv ) {

        var initMyCtrl1 = function(){
            console.log('runs on controller load')
            console.log(mSrv.data);
        };

        initMyCtrl1();

    })

;
#控制器2

angular.module('initMyCtrl2', ['myService'])

    .controller('InitMyCtrl2', function( $scope, mSrv ) {

        var initMyCtrl2 = function(){
            console.log('runs on controller load')
            console.log(mSrv.data);
        };

        initMyCtrl2();

    })

;

谢谢你的回答,我会尝试一下,一旦成功,我会让它成为正确的:)