Я создаю мобильное приложение, используя Ionic Framework. Приложение представляет собой простой корпоративный «каталог сотрудников» с использованием PouchDB для хранения и синхронизации с моей базой данных.PouchDB Односторонняя репликация, сохранение локально добавленных свойств
Мое приложение имеет функцию pull-to-refresh, которая запускает одностороннюю репликацию с CouchDB на PouchDB в приложении. Это работает отлично, но у меня есть один маленький snafu ...
Приложение имеет функцию «список друзей», в которой пользователь может вывести сотрудника из списка, чтобы добавить их в меню быстрого контакта. Когда они прокручивают сотрудника, приложение добавляет свойство favorite: true
к документу PouchDB. Это отлично работает до тех пор, пока этот конкретный документ не будет реплицирован. Как и следовало ожидать, добавленное свойство favorite: true
стирается, поскольку оно не синхронизируется с CouchDB (я хочу, чтобы это свойство было локальным).
Мой вопрос: Есть ли способ иметь один способ репликации, но сохранить часть документа? Мне бы очень хотелось, чтобы база данных CouchDB реплицировала весь документ, но оставила свойство favorite
нетронутым.
Я попытался использовать решение с localStorage и сравнить сохраненный массив с идентификаторами документа, но он довольно грязный и не очень эффективный.
Заинтересованы в том, чтобы услышать, что другие могли сделать для решения подобных ситуаций. Спасибо заранее!
Вот некоторые примеры того, что данные мой PouchDB выглядит следующим образом:
0: {
doc: {
first_name: 'John',
last_name: 'Smith',
phone: 'xxxxxxx',
email: '[email protected]'
},
id: '12314131231',
key: '12314131231'
},
1: {
doc: {
first_name: 'Jane',
last_name: 'Doe',
phone: 'xxxxxxx',
email: '[email protected]',
favorite: true <!-- Added by app, overwritten when replication occurs -->
},
id: '1231344431',
key: '1231344431'
}
Как вы копируете данные с дивана в сумку? Вы используете PouchDB.replicate (источник, цель, [параметры]) или с помощью любого плагина пакета. –
@BhaveshJariwala Я использую 'localDB.replicate.from (remoteDB)', а затем выполняю $ scope. $ Apply (обновление содержимого), когда репликация завершена. – Justin
Проверяете ли вы, что после внесения изменений в документ-пак, репликация с кушетки на сумку работает? –