2017-12-28 6 views
0

Ich möchte E-Mails des Benutzers von dem Client zugreifen, ist hier, was ich in der Server-Seite getan,:Zugriff auf Meteor.users() - Felder vom Client?

Meteor.publish('userList', function(){ 
    return Meteor.users.find({}, {fields:{emails: 1, profile: 1}}); 
}); 

In der Client-Seite:

Template.usersManagement.onCreated(function() { 
    var self = this; 
    self.autorun(function() { 
     self.subscribe('userList'); 
    }); 
}); 

Und die Vorlage Helfer rufen die Benutzer:

Template.usersManagement.helpers({ 
    allUsers: function() { 
     console.log(Meteor.users.find({}).fetch()) 
     return Meteor.users.find({}).fetch() 
    } 
}) 

im usersManagement Vorlage:

Die Namen der Benutzer werden angezeigt, aber die E-Mail ist nicht und es werden keine Fehler in der Konsole angezeigt.

ist hier der Blick auf, wie die in der Datenbank gespeicherten Benutzer:

{ 
     "_id" : "m7admvZc32Jr3SeiE", 
     "createdAt" : ISODate("2017-12-27T21:24:48.927Z"), 
     "services" : { 
       "password" : { 
         "bcrypt" : "$2a$10$wv6KsRp6s91A.0mHH89Q0eT3jrZmJjKJhw8SIH9c8c8OpwMrXyGMC" 
       } 
     }, 
     "emails" : [ 
       { 
         "address" : "[email protected]", 
         "verified" : false 
       } 
     ], 
     "profile" : { 
       "name" : "222", 
       "createdAt" : ISODate("2017-12-27T21:24:48.707Z"), 
       "updatedAt" : ISODate("2017-12-27T21:24:48.707Z"), 
       "group" : "admin" 
     }, 
     "status" : { 
       "online" : false 
     } 
} 

Meine Frage ist, wie kann ich die E-Mails der Nutzer abrufen?

EDIT

Hier ist, wie die E-Mails (von der Konsole) abgerufen werden:

emails

Es gibt ein anderes Feld (0) unter den E-Mail. Ich versuchte this.emails.0.address es nicht (verzweifelter Versuch) arbeitete

Antwort

3

Ihr verzweifelter Versuch, es fast genagelt, versuchen Sie dies:

this.emails.[0].address 
+1

Ich denke this.emails [0] .address wird richtige Syntax sein, um darauf zuzugreifen. –

+0

@VinayChaudhary tatsächlich funktioniert es als Behrouz mit E-Mails erwähnt. [0] .address! – sourceplaze

1

ein Element in der Meteor.users Sammlung speichern emails as an array, für Sie mehr in der Lage sein zu speichern als eine E-Mail-Adresse pro Benutzer. Also, weil es so ist, wäre der richtige Weg:

<h1>{{this.emails[0].address}}</h1> 
Verwandte Themen