2017-01-30 4 views
0

Есть ли способ создать переменную в верхней части шаблонных помощников для удаления дублирования.Создать универсальную вспомогательную переменную

В этой конкретной ситуации я использую var candidate = FlowRouter.getParam('id');, и мне нужно создать переменную в каждом помощнике. Я предполагаю, что есть лучший способ.

professionalOverview: function() { 
    var candidate = FlowRouter.getParam('id'); 
     return ProfessionalOverview.findOne({ candidateUserId: candidate }); 
    }, 
    candidateImg: function() { 
    var candidateUserId = FlowRouter.getParam('id'); 

    return Files.findOne({ userId: candidateUserId }); 
    }, 

EDIT

Template.talentProfileNew.onCreated(function() { 
    var self = this; 
    self.autorun(function(){ 
     this.candidateUserId = new ReactiveVar(FlowRouter.getParam('id')); 
    } 
}); 

Template.talentProfileNew.helpers({ 
    candidate: function() { 
    console.log(Template.instance().candidateUserId.get()); 

    return Meteor.users.findOne({_id: Template.instance().candidateUserId.get()}); 
    } 
}); 

ответ

1

вы могли прочитать его один раз в onCreated() и поместить его в реактивном вар. например

Template.Foo.onCreated(function() { 
    this.candidateUserId = new ReactiveVar(FlowRouter.getParam('id')); 
}); 

Template.Foo.helpers({ 
    candidateImg() { 
     return ProfessionalOverview.findOne({ userId: Template.instance().candidateUserId.get()}); 
    } 
}); 
+0

Я получаю 'Исключение в помощнике шаблона: TypeError: Не удается прочитать свойство 'get' of undefined'. Есть идеи? – bp123

+0

Можете ли вы опубликовать обновленный код? – zim

+0

Внутри автозапуска используйте вместо него. – zim

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

  • Нет связанных вопросов^_^