2015-01-18 1 views
0

я следующее:AngularJS Смотреть не обновляется с помощью интерфейса-маршрутизатора

<div ng-repeat="m in model"> 
    {{m.prop1}}{{m.prop2}} 
</div> 

внутри контроллера является deffered обещание, которое извлекает объект с сервера. .

promise.then(function(e){ 
    $scope.model.push(e); // e is an object, which is pushed into the array. 
    $scope.$apply(); // causes digest already in progress error so put inside $timeout 
}); 

Я попытался $ таймаута и $ сферы $ применяется() и просмотреть еще обыкновение обновления:

var promise = ModelService.create(model,data); 
promise.then(function(e){ 
    $timeout(function(){ 
     $scope.$apply(function(){ 
      $scope.model.push(e); 
     }); 
    }) 
}); 

Обновления: ModelService.js

create: function(model, data){ 
      var defer = $q.defer(); 
      $http.post('/api/'+model+"/create", data).success(function(e){ 
       defer.resolve(e); 
      }).error(function(e){ 
       defer.reject(e); 
      }); 
      return defer.promise; 
     } 

любые идеи, чтобы получить представление для рендеринга модели?

+0

Вам не нужно '$ apply()' или '$ timeout'. Является ли 'e' объектом в правильной структуре, которую вы ожидаете? –

+0

'console.log (e)' для проверки вашего объекта – Anri

+0

Да e - это правильные данные, и он вставляется в массив, так как iW вышла из модели после нажатия. его просто вид, который не обновляется – Kiee

ответ

0

Моя проблема была вниз к задаче контроллера и упускается выработок ui-router

я 2 государства, model и model.create, я заявил, как из них, чтобы использовать один и тот же контроллер ModelController.

Когда на ui-view для model.create он создал новый экземпляр ModelController

Это означало, что я толкал возвращаемые данные в массив, который не был оказанной, как это было вынесено на экземпляре метрополий контроллера.

Чтобы исправить Я передал значение false для параметра контроллера дочернего состояния, заставив его использовать тот же экземпляр, что и родительское состояние, и обновил правильный массив.

Смежные вопросы