如何在离线时在meteor中插入ground.db中的数据

时间:2017-07-11 17:12:03

标签: javascript mongodb cordova meteor grounddb

我有一个完全正常工作的流星应用程序,但现在我想让它离线所以我安装了地面: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
        });        
    }
});

并在客户端上调用消息,如下所示: 从流星/流星'

导入{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 个答案:

答案 0 :(得分:0)

已经有一段时间了,因为我使用了Ground:db但是这就是我认为你缺少的......

首先,您可能只想在Cordova上接收集合,所以

if(Meteor.isCordova) {
  Ground.Collection(Gebiete);
  Ground.Collection(Straßen);
  Ground.Collection(Nummern);
}

然后,您需要使用Groundmethods来存储方法调用。所以在定义方法之后:

Meteor.methods({
  'neuesGebiet': function(...) {
    ...
  }
});

if( Meteor.isClient ) {
  Ground.methodResume([
    'neuesGebiet'
  ]);
}