2016-04-10 6 views
1

Ich habe eine Haupträume Seite, die Routen in ein Kind roomPage, mit URL als rooms/:_id.Wie zeige ich ein Sammlungsfeld (mit Lenker) auf einer gerouteten Seite an?

Also habe ich eine Sammlung Helfer, die einen Benutzer in einem bestimmten Raum finden soll.

Rooms.helpers({ 
    endUser: function() { 
     return Meteor.users.findOne({ _id: this.receiver }).username; 
    } 
}); 

Jedes Zimmer Struktur ist:

_id: YY, //the roomId 
receiver: XX, 
people: [receiver, Meteor.userId()] 

So wie ich {{endUser}} erscheinen im geroutet roomPage machen? Es erscheint auf der Hauptseite rooms aber nicht in rooms/:id. console.log zeigt alle Benutzer korrekt und alle Empfänger in den Räumen an, in denen die Räume innerhalb {{# each rooms}} eingewickelt sind. Ich habe auch die user Veröffentlichung abonniert, aber es ist kein Unterschied.

Wo seine Arbeit in der Hauptseite.

{{#each rooms}} 
    {{ endUser }} 
{{/each}} 

Dies ist, wie ich den Helfer mache.

Irgendwie zeigt this.receiver undefined in console.log innerhalb der route roomPage.

+0

würden Sie bitte den Post bearbeiten und uns einige blaze Code zeigen, wo es –

+0

Geschehen zu arbeiten. Es ist im Grunde eine Schleife durch alle Räume mit jeder Funktion. Irgendwie funktioniert das in Räumen, aber nicht in Räumen /: _ id. Ich vermute, es liegt an der Route in rooms /: _ id und ich muss entweder das HTML-Format des Helpers oder des Blaze anpassen. Wie vielleicht '{{room.endUser}}'. Oder mit _Id = roomId usw. Beide funktionieren übrigens nicht. Ich habe es versucht. – Thinkerer

+0

@Thinkerer Verwenden Sie den Iron Router? –

Antwort

1

Sie müssen Zugriff in der room Objekt zuerst haben. Ich nehme an, Ihre Route hat nur ein Abonnement room. was Sie für diese tun, ist ähnlich wie diese

Template.xxx.helpers({ 
    singleRoom: function(){ 
     return Rooms.find({ _id: Router.current().params._id }); 
    } 
}); 

in Blaze,

{{#with singleRoom}} 
    {{endUser}} 
{{/with}} 
+0

zu bewegen ist abhängig davon, wie Sie das Abonnement gemacht. Der häufigste Anwendungsfall wäre die Übergabe der Objekt-ID als Parameter über den Knoten und die entsprechende Anmeldung. –

+0

Hallo Faysal, ich habe getan wie du erwähnt hast. (Auch beigefügtem Code oben). Irgendwie, wenn ich die '{{#with roomPage}}' 'selbst den' | 'oder statischen Inhalt innerhalb der html verdecke. – Thinkerer

+0

machen Sie nicht Ihren Vorlagennamen und Helfer gleichen Namen. versuche es mit einem anderen Helpernamen. –

Verwandte Themen