有人能解釋我爲什麼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);
});
}
});
沒有額外添加的一切工作正常。
TNX
刪除'e.preventDefault();' – Ronnie
然後永遠不會執行的成功回調狀態變化 – Vlatko
觸發一次,可以防止因爲數據還沒有恢復....您重定向並再次閃光。要做這個API調用主要應用程序狀態 – charlietfl