我的ui-router设置如下:
var editMe = {
name: 'edit.editme',
url: '/users/edit/:Id',
parent: edit,
templateUrl: function (params) {
return '/users/edit/' + params.Id;
},
controller: 'EditMeController'
}
这会在我的MVC控制器上调用一个Action方法,并使用正确的Id返回用户信息。在我更改了某些值后,我想再次导航到此用户。现在缓存了templateUrl,并且不会再次调用我的MVC控制器方法,从而导致返回过时的数据。有关如何阻止此缓存或确保再次调用MVC操作方法的任何想法?
由于
答案 0 :(得分:0)
好的,找到了解决方案。 templateUrl在第一次加载后被缓存,此后MVC控制器不再被调用。
使用templateProvider和$ http.get解决了这个问题:
var editMe = {
name: 'edit.editme',
url: '/users/edit/:Id',
parent: edit,
templateProvider: function ($stateParams, $http) {
return $http.get('/users/edit/' + $stateParams.Id)
.then(function (result) {
return result.data;
});
},
controller: 'EditMeController'
}
$ http.get确保每次调用MVC控制器方法,从而产生新鲜的' HTML返回显示。