2015-08-17 6 views
0

У меня есть приложение Meteor для пользователей с коллекцией, представляющей группы.Meteor - коллекция дисплеев с условиями

группа что-то вроде этого:

{ name: groupname, members: [memberuseridlist], owner: owneruserid} 

У меня есть шаблон для этих групп выглядит следующим образом:

{{#each groups}} 
    <li>{{name}} 
     - 
     <button class="join">+</button> 
     <button class="leave">-</button> 
     <button class="delete">x</button> 
    </li> 
{{/each}} 

Но я хотел бы, чтобы гарантировать, что только соответствующие кнопки например,

{{#each groups}} 
    <li>{{name}} 
     - 
     {{#unless ismember}}<button class="join">+</button>{{/unless}} 
     {{#if ismember}}<button class="leave">-</button>{{/if}} 
     {{#if isowner}}<button class="delete">x</button>{{/if}} 
    </li> 
{{/each}} 

У меня есть набор вспомогательных методов шаблона, но я не понимаю, как передайте фактическую группу в функцию, чтобы я мог оценить ismember и isowner для каждой группы.

ответ

1

Контекст в пределах {{#each groups}} - это групповой документ. Поэтому в ваших помощниках вы можете использовать this для обозначения группы. Попробуйте что-то вроде этого:

Template.myTemplate.helpers({ 
    ismember: function() { 
    return _.contains(this.memberuseridlist, Meteor.userId()); 
    }, 
    isowner: function() { 
    return this.owner === Meteor.userId(); 
    } 
}); 

Если вы хотите, чтобы сделать эти хелперы более переносимым между вашими шаблонами, мою статью на models.