我是流星的新手,我遇到了一些问题。我正在创建一个社交网络应用程序,它基本上做的是注册用户,用户可以发布和关注其他人。这就是它现在所做的基本功能。我想添加一些内容,当用户点击其他用户个人资料时,它会显示用户发布。但代码不起作用,并没有显示任何错误
模板
<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>
代码:
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 :(得分:1)
在这种情况下的问题是,您从未实际呈现过postsList
模板(您刚刚定义了它)。
如果您想真正看到postsList
,则需要从{{> postsList }}
的HTML中的某处调用profileArea
。这将呈现该模板,然后您的postsList.posts
助手将执行(并在Session.get('username')
更改时自动更改。)
也许在个人资料的“关注你”部分之后添加此内容。
<div id="side-posts" class="side-box">
<h3>Posts</h3>
<div class="boxcontent"> {{> postsList }} <div>
</div>