在我AngularJS/Restangular應用程序,我有一個消息模塊,您可以查看通話清單和個別談話:嵌套解析:更新集合中的單個項目?
angular.module('messages').config(function($stateProvider) {
$stateProvider.state('messages', {
url: '/messages/',
templateUrl: '/messages/list.html',
controller: 'MessagesListCtrl as controller',
resolve: {
'conversations': ['Restangular', function(Restangular) {
return Restangular.all('conversations').getList();
}]
}
});
$stateProvider.state('messages.detail', {
url: ':conversationId/',
templateUrl: '/messages/conversation.html',
controller: 'MessagesDetailCtrl as controller',
resolve: {
'conversation': ['conversations', 'Restangular', '$stateParams', '$state', function(conversations, Restangular, $stateParams, $state) {
return conversations.get($stateParams.conversationId).then(function(data) {
Restangular.restangularizeCollection(data, data.messages, 'messages');
return data;
}, function() {
$state.go('messages');
});
}]
}
});
});
正如你可以看到我已經嵌套狀態,列表模板包含一個用戶界面視圖爲詳細模板。我使用瞭解決方案,因此內容不會彈出。現在問題如下:
在列表視圖中,我使用conversation.unreadItems
屬性顯示帶有徽章的未讀對話。
在詳細視圖控制器中,我想將該對話標記爲已讀:conversation.unreadItems = false;
(我也正在對服務器執行PUT操作)。我如何獲得更新的列表視圖,以便徽章被刪除?
我雖然細節的conversation
對象將列表的conversations
集合的一部分,因此,這一切應該工作,但事實並非如此。我可以將對話集合傳入詳細信息視圖,搜索正確的對象並修改它,但這似乎有點奇怪?我錯過了什麼嗎?
是否要更新(放)的談話在數據庫中,當你將該對話標記爲已讀? – klode
是的,我是。 (更多文字,以滿足最低字符數..) –