使用$resource
获取数据,页面包含上一页的数据,直到我刷新它。我读过它是因为角本身并不知道它已被更新。但即使使用$ watch和$applyAsync
,它也无法正常工作。 ($apply
给我一个摘要错误)。
angular.module('app.factory',[])
.factory('teamService', ['$resource','$routeParams',function($resource, $routeParams){
return $resource('/api/team/:id', {id: $routeParams.id},{
update: {
method: 'PUT'
}
});
}]);
(function(){
angular.module('app.team',[])
.controller('TeamController',['teamService','$scope','$rootScope','$resource',function(teamService,$scope,$rootScope, $resource){
$scope.teamid = teamService.query();
答案 0 :(得分:2)
您的代码对我来说很好,所以我认为这是一个路由问题。也许您可以尝试解析路由器中的资源而不是控制器中的资源。 https://github.com/angular-ui/ui-router/wiki#resolve
我也会在承诺解决时尝试分配:
teamService.query().$promise.then(function (result) {
$scope.teamid = result;
}
要强制摘要,您可以尝试$ timeout而不是$ apply。 ($ timeout需要注入控制器。)如果在摘要期间调用$ apply会出错,$ timeout会等到当前摘要完成(它仍在内部使用$ apply)。
teamService.query().$promise.then(function (result) {
$timeout(function(){
$scope.teamid = result;
});
});
很抱歉,不是真正的答案 - 评论框有时会受到限制。