我在Angularjs中使用ui路由器時遇到問題。這個場景非常簡單,我有一個用戶列表,當我點擊用戶名時,視圖將跳轉到編輯表單(這也是創建新用戶表單)。Angularjs UI路由器控制器解決後不更新
但問題是,解析編輯狀態後返回的值不會改變。看起來像控制器不更新新狀態。 *(試過$ state.reload我的真實項目,但沒有成功)
這裏是我的參考plnkr:http://plnkr.co/edit/Gv8sQk7ixfni6tzhqjn3
這裏是我的路由配置:
$stateProvider
.state('list',{
url:'/',
templateUrl:'list.html',
controller:'mainCtrl',
resolve:{
listUser: function(userService){
return userService.list();
}
}
})
.state('user',{
url:'/user',
templateUrl:'form.html',
controller:'userCtrl',
resolve:{
objUser: function(userService){
// Init a new "User" object
console.log("New user");
return "New name";
}
}
})
.state('user.edit',{
url:'/:id',
templateUrl:'form.html',
controller:'userCtrl',
resolve:{
objUser: function(userService, $stateParams){
// Return the user
console.log("Edit user ", userService.get($stateParams.id));
return userService.get($stateParams.id);
}
}
});
之所以我在解決步驟中完成了所有必要的對象,在閱讀了這篇文章Advanced routing and resolves之後,我發現自己處於循環中,我在控制器中完成所有請求,當然,重複代碼是我無法避免的一件事情。所以,我試圖通過改變處理數據的方式來讓它變得更好,但現在陷入困境。
任何人都可以指出我哪裏出錯了嗎?真的很感激它。
會發生什麼事是'user'狀態的決心功能在'user.edit'之後被稱爲*,並覆蓋它。 – 2014-08-28 12:35:38