2017-06-18 11 views
1

すべてのユーザー情報を管理ページの一部として表形式で表示したかったのです。私は同じために流星口座のパッケージを使用した。流星口座でのユーザーアカウントの反復UI

HTMLコードは次のとおりです。

{{#each userList}} 
<tbody> 
    <tr> 
    <th scope="row">*</th> 
    <td>{{infofullname}}</td> 
    <td>{{infosurname}}</td> 
    <td>{{infoemail}}</td> 
    </tr> 

</tbody> 
{{/each}} 

問題は、すべての登録ユーザー、現在のユーザーのための情報が表示なっていることではありません。反復は、現在ログインしているユーザーのために起こります。また、電子メールアドレスが表示されません。

ヘルパーコードは次のとおりです。次のような問題に直面して

Template.students.helpers({ 
userList: function(){ 
return Meteor.users.find({}); 
}, 

infofullname: function(){ 
return Meteor.user().profile.fullname; 
}, 

infosurname: function(){ 
return Meteor.user().profile.surname; 
}, 

infoemails: function(){ 
return Meteor.user().emails.[0].address; 
} 
}); 

イム: 1)電子メールアドレスが表示され取得されていません。 2)すべてのユーザーの情報は表示されません。

ありがとうございます。

+0

は、あなたの出版物を表示することができますか?これは、データをクライアントに配信して表示させるものです。 –

+0

@MichelFloyd私は出版物を作成していません。出版物はここでどのように役立つだろうか?この場合の出版物の定義方法は?私は流星を初めて知りました。 –

答えて

0

サーバーで次を持つすべてのユーザー公開:@Sudhanshuしかし示唆したようにあなたのヘルパーは若干の修正が必要になります

Meteor.subscribe('allUsers'); 

:でクライアントにサブスクライブすると

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

をユーザーのカーソルをループしているので、ループ内の個々のユーザーオブジェクトであるthisを利用できます。

Template.students.helpers({ 
    userList() { 
    return Meteor.users.find({}); 
    }, 

    infofullname() { 
    return this.profile.fullname; 
    }, 

    infosurname() { 
    return this.profile.surname; 
    }, 

    infoemails: function(){ 
    return this.emails.[0].address; 
    } 
}); 

また元、あなたのヘルパーの3の必要性を回避する、炎に直接プロパティを入れ子にアクセスすることができます。

{{#each userList}} 
<tbody> 
    <tr> 
    <th scope="row">*</th> 
    <td>{{profile.fullname}}</td> 
    <td>{{profile.surname}}</td> 
    <td>{{emails.[0].address}}</td> 
    </tr> 
</tbody> 
{{/each}} 
+1

私を助けていただきありがとうございます。これで、自動公開パッケージを削除した後でも、ユーザーの情報が返されます。また、メールアドレスを取得するには、「​​{{emails。[0] .address}} ' –

0

複数の物事が間違っている:

  1. Meteor.usersは()あなたがそれらを公開する(またはあなたがautopublishを使用する)場合にのみ、あなたに複数のユーザーを与えます。

  2. Meteor.user()は、現在ログインしているユーザーのみを表示します。だからあなたのヘルパーは皆あなたの計画どおりに動かないでしょう。それらを変更してMeteor.users.findOne({_id: id)})を使用するように変更します。パラメータ付きヘルパーはいつでも使用できます。

  3. Meteorはデフォルトでprofileのみを公開し、emailsは公開しません。したがって、出版物にemailsフィールドを公開する必要があります。

+0

コンセプトをクリアしていただきありがとうございます。 –

関連する問題