2016-06-28 3 views
0

Пользователь может только удалить сообщение, если он был один, который разместил it.However пользователя может видеть весь яваскрипт код posts.The является:Проверка равенства в Blaze?

var postedBy = Meteor.user(); 
var currentPost = this._id; 
Posts.insert({ 
name:postName, 
createdAt:new Date(), 
postId:currentPost, 
postedBy:postedBy 
}); 

HTML-код:

<template name="posts"> 
{{#if currentUser}} 
{{> addPost}} 
<ul> 
    {{#each post}} 
     <li>{{> postItem}}</li> 

    {{/each}} 
</ul> 
{{/if}} 
</template> 


<template name="postItem"> 
    <li> 
    <h4>{{name}}</h4> 
    <i>Posted by {{postedBy.username}} on {{createdAt}}</i> 

    [<a href="#" class="delete-post">Delete</a>] 

    </li> 
</template> 
<template name='addPost'> 
<input type='text' placeholder='Add post here' name='postName' id ='myinput'> 
<button class="btn btn" type="button" id='btn'>Post</button> 
</template> 

И currentUser.username, и signedBy.username отображают имена зарегистрированных пользователей и пользователя, разместившего определенное сообщение соответственно.

Я пытаюсь работать с тегом Delete anchor.

{{#if currentUser.username==postedBy.username}} 
[<a href="#" class="delete-post">Delete</a>] 
{{/if}} 

Но это показывает ошибка в команде prompt.I знаю, что это неправильно, но я не могу думать о любой другой way.How я пишу это «если» заявление, чтобы проверить, если текущий пользователь был тот, кто разместил этот пост? Пожалуйста, помогите, поскольку я новичок в Meteor.Sorry для плохого английского.

ответ

3

Вы не можете использовать произвольные выражения JavaScript в пробелах. Добавьте помощника, как это:

Template.postItem.helpers({ 
    canDelete: function(){ 
    return Meteor.user().username === this.postedBy.username; 
    } 
}); 

Что вы можете использовать в шаблоне, как это:

{{#if canDelete}} 
    <a href="#" class="delete-post">Delete</a> 
{{/if}} 

Также отметим, вместо того, чтобы копировать объект пользователя в каждой должности, рекомендуемый способ для хранения идентификатор пользователя в postedBy.

+0

Спасибо. Я буду помнить об этом. –

Смежные вопросы