【发布时间】:2014-08-28 12:19:37
【问题描述】:
我在 Angularjs 中使用 ui-router 时遇到问题。场景很简单,我有一个用户列表,当我点击用户名时,视图会跳转到编辑表单(这个也是create-new-user表单)。
但问题是,解析编辑状态后的返回值并没有改变。似乎控制器没有更新新状态。 *(在我的真实项目中尝试使用 $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之后调用,并覆盖它。
标签: javascript angularjs angular-ui-router resolve