ng-bind не обновляется, только после обновления страницы
С помощью $resource
чтобы получить данные, на страницах есть данные с предыдущей страницы, пока я не обновлю их. Я читал, что это потому, что сам Angular не знает, что он был обновлен. Однако даже после использования $ 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();
1 ответ
Ваш код выглядит хорошо для меня, поэтому я думаю, что это проблема маршрутизации. Может быть, вы могли бы попытаться разрешить ресурс в маршрутизаторе, а не в контроллере. https://github.com/angular-ui/ui-router/wiki
Я также попытался бы назначить, когда обещание разрешается:
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;
});
});
Извините, но не реальный ответ - поле для комментариев иногда так ограничено.