有人可以解释一下为什么Angular UI Router Extras添加触发两次(在初始化时!)$stateChangeStart
事件,以防我有一些异步 ajax 检查和e.preventDefault()
调用?
短事件代码示例:
$rootScope.$on("$stateChangeStart", function (e, toState, toParams, fromState, fromParams, error) {
console.log("$stateChangeStart");//fired twice
if(!User.data) {
e.preventDefault();
$http.get("https://randomuser.me/api/")
.success(function(data, status, headers, config) {
console.log(data);
User.data = data;
$state.go(toState, toParams);
});
}
});
没有额外的东西,一切都按预期工作。
肿瘤坏死因子