2017-01-22 3 views
1

추가 동적 팀을 포함하여 사용자 팀 목록에 가입하려고합니다.Meteor, 동적 구독 매개 변수

MeteorObservable.subscribe('user.teams', extraTeamId).subscribe(() => { 
    this.findUserTeams(); 
}); 

extraTeamId var에 끊임없이 내 서비스 구성 요소에 변화, 나는 때마다 내 클라이언트 컬렉션이이 역동적 인 팀이 필요합니다 : 마지막 하나의 ID는 그렇게 구독에 매개 변수로 전달된다 var가 변경됩니다.

내 첫 번째 질문은 내 구성 요소에서이 변수의 값을 변경하는 경우 게시가이 새 값을 받으면 서버에서 업데이트되지 않습니까?

Meteor가 이와 같이 작동하지 않는다면 다른 좋은 옵션이 있습니까?

나는 또한 Angular2를 사용하고 있습니다.

+0

봐 도움이 될 것입니다 희망이

valuechangefunction(){ if (this.userteamSub) { this.userteamSub.unsubscribe(); } this.userteamSub = MeteorObservable.subscribe('user.teams', extraTeamId).subscribe(() => { this.userteamdata = findUserTeam.find({}).zone(); }); } 

식으로 뭔가를 할 수있는 지금

 userteamdata: Observable <any[]> ; userteamSub: Subscription; this.userteamSub = MeteorObservable.subscribe('user.teams', extraTeamId).subscribe(() => { this.userteamdata = findUserTeam.find({}).zone(); }); 

] (https://angular-meteor.com/tutorials/socially/angular2/search-sort-pagination-and-reactive-vars), 나는 그것이 당신의 필요와 일치 할 것이라고 생각한다. – Khang

+0

고마워,이 구현을 보지 못했다. 전에,하지만 나는 좋아했다! 어쩌면 나는 그것의 간단한 버전을 시도 할 것이다. –

답변

1

새로운 가치를 얻으려면 마지막 구독을 취소하고 새 값을 다시 구독해야합니다. 당신은 각도 2의 유성에서 이렇게 할 수 있습니다. 서버 측에서

if (Meteor.isServer) { 
    Meteor.publish('user.teams', function(option : string) { 
       console.log(option); // you will get your dynamic param value in option 
       return findUserTeams.find({"team": option}); // apply your query here 
     }); 
    } 

을 게시하고 클라이언트 측에서 당신은 이런 식으로 뭔가를 할 수 있습니다. 당신의 extraTeamId 값 변화는 그 변화 을 감지하고 난 문제는이 [링크 반응성 변경 섹션 :

+0

그게 좋은데, 나는 이것을 피하려고 노력했다. (구독을 취소하고 다시 구독한다.) 나는 그것이 필요할 것이라고 생각한다. 저는 2 개의 구독 사용에 대해 생각하고 있습니다. 하나는 사용자 팀 (많은 사용자가있을 수 있음)과 구독을 유지하는 것입니다. 이렇게하면 콜렉션 데이터를 제거하고 클라이언트로 다시 보내는 오버 헤드가 방지됩니다. 다른 구독은 추가 팀 전용이며,이 구독은 변경 될 때마다 구독을 취소하고 다시 구독하게됩니다. 어떻게 생각해? –

+0

@HenriqueRotava 나는 2 개의 서브 스크립 션 대신 하나의 배열에 모든 팀을 추가 할 수 있고 onchange는 동적 배열을이 배열에 추가하고 mongdb 쿼리에서 $를 사용하여 모두 검색 할 수있는 문제에 대한 해결책이 하나 더 있다고 생각합니다. 모든 팀을 서버 측에서 게시하십시오. 여기에 mondb 쿼리에 대한 링크가 필요합니다. http://stackoverflow.com/questions/8145523/mongodb-find-by-multiple-array-items. –