Javascript 当路由到特定路由Angularjs时运行函数?
我正在用angularjs开发一个应用程序。我需要做的是,当路由更改为特定路由时,基本上运行一些脚本。我知道,我可以为每个路由定义一个单独的控制器。因为,一些路由应该有共享数据,我在它们之间共享了一个控制器Javascript 当路由到特定路由Angularjs时运行函数?,javascript,angularjs,Javascript,Angularjs,我正在用angularjs开发一个应用程序。我需要做的是,当路由更改为特定路由时,基本上运行一些脚本。我知道,我可以为每个路由定义一个单独的控制器。因为,一些路由应该有共享数据,我在它们之间共享了一个控制器 formApp.config(function($routeProvider) { $routeProvider .when('/firstUrl',{ templateUrl : 'firstURL', control
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();
})
;
谢谢你的回答,我会尝试一下,一旦成功,我会让它成为正确的:)