2016-11-03 4 views
1

Mit diesem Code in einer Datei "reports.js" im selben Ordner von "reports.html", bekomme ich 0 Elemente im Array zurückgegeben. Ich bin mir nicht sicher, dass mir eine zusätzliche Erklärung fehlt, aber ich kann auch nicht "importieren" Mongo von "meteor/mongo"; ohne Fehler "Verwendung des reservierten Wortes 'Import'". Meteor Version 1.2.1Zugriff auf Mongo db mit Meteor-Blaze

JS

Tasks = new Mongo.Collection('tasks'); 

if(Meteor.isClient){ 
    Template.reports.rendered = function(){ 
     if(Session.get("animateChild")){ 

      $(".reports-page").addClass("ng-enter"); 

      setTimeout(function(){ 
       $(".reports-page").addClass("ng-enter-active"); 
      }, 300); 

      setTimeout(function(){ 
       $(".reports-page").removeClass("ng-enter"); 
       $(".reports-page").removeClass("ng-enter-active"); 
      }, 600); 
     } 
    }; 
} 

Template.dashboardd.helpers({ 
    options() { 
    return Tasks.find({}); 
    }, 
}); 

HTML

<Template name="dashboardd"> 
    {{#each options}} 
    <p><label>{{text}}</label></p> 
    {{/each}} 
</Template> 
+0

Ich denke, Sie müssen Babel oder Ecmascript-Paket hinzufügen, damit der Import funktioniert. Haben Sie die Aufgabensammlung veröffentlicht und abonniert? – Mikkel

Antwort

0

AFAIK Meteor 1.2 unterstützt nicht Imports. Improrts sind neue Module hinzugefügt ich Meteor 1,3 oder 1,4 Ich bin nicht sicher. I Allways diese 3 Elemente verwenden, wenn sie mit Sammlungen der Arbeit (4 wenn wir Sammelanmeldung)

Sie auf Server-Seite tun sollten einige veröffentlichen und erlaubt wie:

Meteor.publish("Tasks ", function (selector, options) { 
//you can remove condition if you dont have accounts-package 
    if (this.userId) { 
    return Tasks .find(selector || {}, options || {}); 
    } 
}); 

und einige Ermöglicht Noch einmal, wenn Sie dont Meteor-Konten können Sie einfach - return true, auf Einfügungen, Aktualisierungen usw. Aber ich muss nicht sagen, das ist nicht die Sicherheit: P

Tasks.allow({ 
insert: function (userId, doc) { 
return userId; 
}, 

update: function (userId, doc) { 
    return userId; 
}, 

remove: function (userId) { 
    return userId; 
}, 
}); 

auf Client-Seite einige abonnieren

Template.YourTemplateName.onCreated(function() { 
this.autorun(() => { 

    this.subscribe('Tasks', { _id: Template.currentData()._id }); 
//or 
    this.subscribe('Tasks'); 
//but this solution can kill Browser when you collection will have a thousand elements. Allways try to not subscribe all collection. Only Needed fields/objects 
    }); 
});