2015-10-26 4 views
2

Создаю новую запись, эта запись успешно добавлена ​​в базу данных. Это хорошо. Но проблема в том, что он не обновляет список существующих записей - значит, функция push не работает.AngularJS не вставляет новую запись в массив

Это внутри контроллера:

$scope.posts = Posts.query(); 
... 
$scope.saveForm = function(post) { 
    var p = new Post(post); 
    p.$save(function (response) { 
    $scope.posts.push(angular.extend(p, response.id)); 
    console.log('saved'); 
    console.log(response.id); 
    }); 
}; 

Я пытался использовать только push() без angular.extend(), также пытался добавить $scope.posts = Posts.query(); в конце контроллера, но это не помогло - новый рекорд по-прежнему не добавляется в текущий список сообщений.

Что может быть причиной этого? Здесь я нашел похожие темы, но это не помогло мне решить эту проблему.

спасибо.

EDIT: Я вижу в console.log($scope.posts); новый пост, он просто не отображается в списке сообщений.

EDIT2: Я попытался также $scope.$apply(); после команды push, но это привело к этому сообщению об ошибке:

Error: [$rootScope:inprog] $digest already in progress 

EDIT3: я узнал, что, когда я пытаюсь удалить записи, список также не обновляется (только после обновления).

EDIT4: Когда я добавить новую запись, в JS этот вывод (новая запись, правильно сохранены, просто не обновляется в списке, где находятся все элементы):

Resource {id: Object, title: "hohohohooho", body: null, starred: null, created_at: "2015-10-27T04:00:06.943Z"…} 

ID доступен как response.id.$oid.

+0

не должен быть расширением 'angular.extend (p, {id: response.id})'? – charlietfl

+0

вам нужно предоставить больше кода. Угловое использует стандартный js-массив push, и он работает достаточно хорошо. –

+0

перед тем, как нажимать o расширенный номер p в сообщениях, войдите, чтобы узнать, что напечатано p –

ответ

0

Это работает для меня ...

p.$save().then(function(response){ 
    $scope.posts.push(response.id) 
}); 
+0

Черт, еще ничего. Он по-прежнему не добавляет новую запись в список существующих записей. – user984621

0

Угловая простираться не сохраняет список/массив. Он расширяет старый список/массив новым элементом.

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