2013-02-10 6 views
2

, 나는 여기에 단계를 수행 한 유성 응용 프로그램에서 다른 사용자의 이메일 주소를 액세스 할 수 없습니다 , 프로필. 이 모든 일들에도 불구하고 내 상황이 존재합니다.내가 시작하기 전에

현재 로그인 한 사용자 이외의 다른 사용자의 이메일 주소에 액세스하려고합니다. 나는이 접근을 필요로하는 2 개의 템플릿을 가지고있다. 첫 번째 템플릿이 작동하고 액세스 할 수 있습니다. 두 번째 템플릿을 사용할 수 없습니다.

다음

내가 이메일 필드를 게시하고, 가입을 위해이 설정 코드 (하지만이 같은 결과가 나 또한 '주소'[: {이메일 1} 예를 들어 필드]를 지정하지 해봤)이다

Template.infoSelect.partnerEmail = function() { 
    var partnerId = Meteor.user().profile.partnerId; <-- works 
    var partner = Meteor.users.findOne({_id: partnerId}); <-- works but only _id and profile are returned 
    return partner.emails[0].address; <-- throws exception because the 'emails' field doesn't exist 
}; 
: 여기
Template.createPartner.events({ 
    'click .setup-partner' : function(event, template) { 
     var partner = Meteor.users.findOne({"emails.address": '[email protected]' }); <-- works 
    } 
}); 

이 작동하지 않습니다 템플릿 코드입니다 : 여기

if (Meteor.isServer) { 
    Meteor.publish("allUsers", function() { 
     return Meteor.users.find({}); 
    }); 
    Meteor.publish("allUserData", function() { 
     return Meteor.users.find({}, {fields: {"emails.address": 1}}); 
    }); 
}; 

if (Meteor.isClient) { 
    Meteor.subscribe("allUsers"); 
    Meteor.subscribe("allUserData"); 
}; 
이 작동 템플릿 코드입니다 17,451,515,

나는이 시도했지만 한 차이가 없습니다 :

var partner = Meteor.users.find({_id: partnerId}, {fields: {"emails.address": 1}}); 

없는 이유는 두 번째 템플릿에 사용자의 이메일 주소를 볼 수 있지만 내가 할 수있는 최초의 수?

답변

4

두 세트의 동일한 컬렉션을 구독하고 있기 때문에 생각합니다. Meteor는 첫 번째 구독을 사용하고 두 번째 구독은 무시합니다. 왜 그것이 한 경우에 작동하는지 잘 모르겠습니다.

첫 번째 가입을 제거하고 일을해야 두 번째로 갈 경우, 기본적으로 줄 제거 :

Meteor.subscribe("allUsers"); 

하나 더 팁을. 당신은 당신의 이메일 기능을 변경 수 :

Template.infoSelect.partner = function() { 
    var partnerId = Meteor.user().profile.partnerId; <-- works 
    var partner = Meteor.users.findOne({_id: partnerId}); <-- works but only _id and profile are returned 
    return partner; 
}; 

을 그리고 당신의 핸들은 다음과 같습니다

<template name="infoSelect"> 
{{partner.email.0.address}} 
{{partner.profile.name}} <!--If you have configured profiles --> 
</template> 
+0

아를 (당신이 그를 참조 할 수 있도록이 너무 이름으로/당신의 파트너 변수 그녀를 더 많은 옵션을 열어) 참으로 훌륭한 팁입니다. 감사합니다! 그러나, 나는 단 한번 구독/출판에 대한 귀하의 첫 번째 제안을 이미 시도했지만 아무런 차이가 없었습니다 ... –

+0

와우! 두 번째 제안이 효과를 발휘했습니다! 나는 이미 첫 번째 것을 시도했지만, 두 번째 것을 사용하도록 수정했을 때, 효과가있었습니다! 너 내 친구 야, 기쁘다! –

+1

"allUsers"라는 구독을 만드는 것에 대해 혼란스러워합니다. 구독을 "allUsers"라고하면 "allUsers"라는 이름의 Meteor Collection을 만들지 않습니까? 그렇다면 "allUsers"컬렉션이 Meteor.users 컬렉션과 어떻게 링크되어 있습니까? 일단 "allUsers"구독을 만들면, Meteor.users 컬렉션 대신에 새로운 "allUsers"컬렉션에 대한 내몽고 쿼리를 수행해야합니다.하지만 그런 일은 일어나지 않아 혼란 스럽습니다. –

관련 문제