gpt4 book ai didi

javascript - 使用 remove() 后 Restangular/angularjs 对象不更新

转载 作者:行者123 更新时间:2023-11-30 05:39:30 24 4
gpt4 key购买 nike

我在 Angularjss 中使用 Restangular。我有一个显示所有消息的索引 View 。我可以毫无问题地编辑这些消息并添加到列表中。当我尝试通过元素使用 remove() 时,显示所有消息的索引页面不会更新。我必须刷新页面。添加或编辑后我不需要刷新页面。

很抱歉没有包括一个 plunker,但我不确定如何获得一个工作示例,因为我的 API 是本地的。

我通过解析注入(inject)消息对象:

$routeProvider.when('/', {
templateUrl: 'messages-index.html',
controller: 'MessagesController',
resolve: {
messages: function(Restangular) {
return Restangular.all('messages').getList();
}
}
});

并使用ng-repeat在索引 View 中显示消息:

<li ng-repeat="message in messages | filter:query | filter:typeQuery class="messages__item">
<p>
<a href="#/messages/{{ message.id }}/">{{ message.message }}</a>
<a class="round secondary label">{{ message.type }}</a>
</p>
</li>

在编辑 View 中,我通过解析注入(inject)特定消息:

$routeProvider.when('/messages/:messageId/edit', {
templateUrl: 'messages-edit.html',
controller: 'MessagesEditController',
resolve: {
message: function(Restangular, $route) {
return Restangular.one('messages', $route.current.params.messageId).get();
}
}
});

最后,我的 MessagesEditController 看起来像这样:

.controller('MessagesEditController', ['message', '$scope', '$location', 'Restangular', function(message, $scope, $location, Restangular) {
var original = message;
$scope.message = Restangular.copy(original);

$scope.editMessage = function() {
$scope.message.put().then(function(){
$location.path('/');
}, function(response) {
$scope.formErrors = response.data.error.params;
});
};

$scope.deleteMessage = function() {
original.remove().then(function() {
$location.path("/");
});
};
}])

有人知道为什么我的消息对象在删除后没有在索引 View 中更新吗?

干杯!

最佳答案

出于某种原因,Restangular 让用户在删除操作后更新他们的 $scope。根据用例,它可能会有用。

original.remove().then(function() {
$scope.messages = _.without($scope.messages, original);
});

关于javascript - 使用 remove() 后 Restangular/angularjs 对象不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21565170/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com