У меня есть несколько полезной функции в моем Метеор приложение, которое выглядит следующим образом:Метеор Реакционная кажется сбой при входе в
Template.registerHelper('canManagePatients',() =>{
const id = Meteor.userId();
const aa = new AccountAccess(id);
const val = aa.canManagePatients();
return val;
});
Я понимаю, что Meteor.userId() является recative источником данных и, следовательно, после входа в систему состояние этих помощников должно измениться.
К сожалению, это не так, и если я не перезагрузился, эти параметры остаются скрытыми после входа в систему. Что мне не хватает?
Это как класс AccountAccess использует USERID:
constructor(userId){
if (typeof userId !== "undefined"){
this._userId = userId;
} else {
this._userId = Meteor.userId();
}
}
canManagePatients(){
const practice = this.getCurrentPractice();
if (!practice){
return false;
}
const patientTagId = this._getPatientAdminTag()._id;
const ownerTagId = this._getOwnerTag()._id;
return practice.tags.some((obj)=>{
return (obj === patientTagId || obj === ownerTagId);
});
}
Update
Это отрывок из того, что шаблон выглядит следующим образом. Все отлично работает для четырех {{#if }}
утверждений, которые только функционируют правильно после перезагрузки после входа в систему, кроме
<div id="navbar" class="navbar-collapse collapse">
{{#if Template.subscriptionsReady}}
<ul class="nav navbar-nav navbar-right">
{{#if currentUser}}
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
{{practice.name}}<br><b>Hello {{userName}}</b> (Not you? <b><u>Logout</u></b>)<span class="caret"></span>
</a>
<ul class="dropdown-menu">
{{#if canManageUsers}}<li><a href="/manage-practice/users/">Manage Users</a></li>{{/if}}
{{#if canManageForms}}<li><a href="/manage-practice/registration/">Manage Registration Settings</a></li>{{/if}}
{{#if canManageForms}}<li><a href="/manage-practice/forms/">Manage Forms</a></li>{{/if}}
{{#if canManagePatients}}<li><a href="/manage-practice/reports/">Reporting</a></li>{{/if}}
<li role="separator" class="divider"></li>
<li><a href="/widgets">Use compact UI</a></li>
<li><a href="/dashboard">Use old UI</a></li>
<li role="separator" class="divider"></li>
<li><a id="linkLogout">Logout</a></li>
</ul>
</li>
{{/if}}
</ul>
{{/if}}
</div><!--/.nav-collapse -->
Как выглядит ваш шаблон? – MasterAM
В раскрывающемся списке bootstrap у меня есть строки вроде этого ... '{{#if canManagePatients}}
Не нужно ли выпадающему меню инициализировать javascript? –