gpt4 book ai didi

AngularJs Run block $stateChangeStart 没有被触发

转载 作者:行者123 更新时间:2023-12-02 22:56:41 27 4
gpt4 key购买 nike

当应用程序更改路由时,我的 AngularJs 运行 block 不会执行处理程序函数,至少我是这么认为的。我尝试放置一个简单的控制台日志来测试,但它没有记录任何内容。最终目标是成为一个路由拦截器,检查路由是否需要身份验证。

github 存储库链接 https://github.com/guilinden/authenticatedCRUD

(function(){
angular
.module('app')
.run(function ($rootScope, $location) {
$rootScope.$on('$stateChangeStart', function (event, toState, toParams) {
var requireLogin = toState.data.requireLogin;

if(requireLogin){
event.preventDefault();
$location.path('/home');
}

});
});
})();

最佳答案

$stateChange* 事件已弃用

$stateChange* 事件在 1.0 中已弃用。它们被替换为 $transitions.on* 转换 Hook 。

但是,可以通过包含 stateEvents.js 并依赖于 'ui.router.state.events' Angular 模块来重新启用它们以实现向后兼容性。

<script src="stateEvents.js">
var myApp = angular.module('myApp', ['ui.router', 'ui.router.state.events']);

参见UI-router Issue #2720 - $stateChangeStart not being fired on v1.0

关于AngularJs Run block $stateChangeStart 没有被触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47891477/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com