2017-03-05 5 views
0

Ich bin neu bei Meteor und ich habe einige Probleme. Ich erstelle eine Social-Network-App, und was es im Grunde tut, ist Benutzer anmelden und der Benutzer kann andere schreiben und folgen. Das ist die grundlegende Funktionalität, die es gerade tut. Ich möchte etwas hinzufügen, dass, wenn ein Benutzer auf ein anderes Benutzerprofil klickt, es von Benutzern gepostet wird. Aber der Code ist nicht zu arbeiten und bei allen VorlagenIch kann nicht scheinen, den Fehler in Meteor zu finden

einen Fehler zeigen, tut

<template name="profileArea"> 
{{#if currentUser}} 
    <div id="side-profile" class="side-box"> 
     <a class="filter-user">{{currentUser.username}}</a> 
    </div> 
    {{/if}} 
    <div id="side-all" class="side-box"> 
     <a class="community">Community</a> 
    </div> 
    {{#if currentUser}} 
    <div id="side-like" class="side-box"> 
     <h3>Following</h3> 
     <div class="boxcontent"> 
     {{#each username in following}} 
      <div> 
       <a class="filter-user">{{username}}</a> 
      </div> 
     {{/each}} 
     </div> 
    </div> 
     <div id="side-likeyou" class="side-box"> 
     <h3>Follows You</h3> 
     <div class="boxcontent"> 
     {{# each followers}} 
      <div> 
       <a class="filter-user">{{username}}</a> 
      </div> 
     {{/each}} 
     </div> 
    </div> 
    {{/if}} 
</template> 

Code:

Template.profileArea.events({ 
    'click .filter-user': function(event){ 
     event.preventDefault(); 
     var selectedUser = event.target.text; 

     Session.set('username', selectedUser); 
    }, 
    'click .community': function(event){ 
     event.preventDefault(); 
     Session.set('username', null); 
    } 
}); 

Template.postsList.helpers({ 
    posts: function() { 
     //Stuff should happen here but its not -_- 
     var result; 
     if(Session.get('username')){ 
      result = Post.find({username: Session.get('username')}, {sort:{created: -1}}); 
     } 
     else{ 
      result = Post.find({}, {sort:{created: -1}}); 
     } 
     return result; 
    } 
}); 
+0

Wo in Ihrer Vorlage rendern Sie die Untervorlage 'postsList'? Ihr Beispiel enthält dieses Detail nicht. – jordanwillis

+0

Hallo, meinst du das?

Antwort

1

Das Problem in diesem Fall ist, dass Sie noch nie wirklich gemacht Ihre postsList Vorlage (Sie habe es gerade erst definiert).

Wenn Sie tatsächlich postsList sehen möchten, müssen Sie {{> postsList }} von irgendwo in Ihrem profileArea HTML aufrufen. Dadurch wird diese Vorlage gerendert und dann wird Ihr postsList.posts Helper ausgeführt (und ändert sich reaktiv, wenn sich Session.get('username') ändert).

Fügen Sie dies möglicherweise nach dem Abschnitt "Folgt Ihnen" des Profils hinzu.

<div id="side-posts" class="side-box"> 
    <h3>Posts</h3> 
    <div class="boxcontent"> {{> postsList }} <div> 
</div> 
Verwandte Themen