2016-11-17 2 views
0

Ich habe einen Verlag für eine Sammlung auf der Server-Seite mit dem folgenden Code eingeführt:Angular 2.0 Meteor: Wie abonniere ich die Sammlung richtig?

Meteor.publish('posts',() => Posts.find());

Jetzt mag ich die Sammlung auf der Client-Seite abonnieren. Als Beispiel möchte ich die Anzahl der Einträge in der Sammlung an die Konsole drucken, sobald die Daten geändert hat:

ngOnInit() { Meteor.subscribe('posts',() => { console.log(Posts.find().count()); }); }

Das Ergebnis ist irgendwie verwirrend für mich:

Observable {_isScalar: false, source: ObservableCursor, operator: CountOperator}

Es scheint, ich habe das ganze Konzept missverstanden. Was ist der richtige Weg, um diese Funktionalität zu implementieren?

Antwort

1

Ich glaube, Sie einige gemeinsame Code fehlen, die ich in der Regel in/common

model.js setzen:

// Collections that exist on the server database 
Posts = new Mongo.Collection("posts"); 

Die Folge davon ist, 'Beiträge' eine Variable in beiden Client zu machen und Servercode.

Komponentencode:

Meteor.subscribe('posts',() => []); 

this.helpers({ 
    posts:() => Posts.find(), 
0

Auf Client-Seite habe ich eine count Funktion:

myCount(p:any) { 
    return p.fetch().length; 
} 

und in meiner html Seite habe ich diese Funktion:

{{ myCount(posts) }} 
Verwandte Themen