Как вставить данные в ground.db в метеор в автономном режиме
У меня есть полностью работающее метеорное приложение, но теперь я хочу перевести его в автономный режим, поэтому я установил Ground: DB и appcache вот мой файл пакета:
...
ground:db
appcache
ground:localstorage
Затем я изменил мои коллекции на это:
Gebiete = new Mongo.Collection('gebiete');
Straßen = new Mongo.Collection('straßen');
Nummern = new Mongo.Collection('nummern');
Ground.Collection(Gebiete);
Ground.Collection(Straßen);
Ground.Collection(Nummern);
и теперь, когда приложение находится в сети, я могу вставить данные, а затем отключить приложение и перезапустить (cordova), и данные не будут потеряны.
Но когда я в автономном режиме, и я хочу вставить что-нибудь. это не работает;(. Мне не нужно менять файл моих методов, но вот один из методов, чтобы убедиться, что это правильно:
Meteor.methods({
neuesGebiet(Besitzer, Gebietsname, Gebietsnummer, Ort, Erstellungsdatum) {
Gebiete.insert({
Besitzer: Besitzer,
Gebietsname: Gebietsname,
Gebietsnummer: Gebietsnummer,
Ort: Ort,
Erstellungsdatum: Erstellungsdatum
});
}
});
и на клиенте сообщение называется так: import { Meteor } из 'meteor/meteor'
Template.neuesGebietErstellen.onCreated(function () {
this.subscribe('gebiete');
});
Template.neuesGebietErstellen.events({
"submit .add-Gebiet": function (event) {
var Gebietsname = event.target.Gebietsname.value;
var Gebietsnummer = event.target.Gebietsnummer.value;
var Ort = event.target.Ort.value;
var Besitzer = Meteor.userId();
var Erstellungsdatum = new Date();
var Datum = Erstellungsdatum.toLocaleDateString();
Meteor.call('neuesGebiet', Besitzer, Gebietsname, Gebietsnummer, Ort, Datum)
FlowRouter.go('/');
return false;
}
});
Пожалуйста, помогите мне вставить данные в автономном режиме, потому что я хочу, чтобы они были на 100% автономны
Спасибо;)
1 ответ
Прошло много времени с тех пор, как я использовал Ground: db, но вот что, по-моему, вам не хватает...
Во-первых, вы, вероятно, хотите только основанные коллекции на Кордове, поэтому
if(Meteor.isCordova) {
Ground.Collection(Gebiete);
Ground.Collection(Straßen);
Ground.Collection(Nummern);
}
Затем вам нужно использовать Groundmethods для хранения ваших вызовов методов. Итак, после определения метода:
Meteor.methods({
'neuesGebiet': function(...) {
...
}
});
if( Meteor.isClient ) {
Ground.methodResume([
'neuesGebiet'
]);
}