MeteorJS и x-editable-reactive-template

Я хочу использовать x-editable-reactive-template в моем проекте MeteorJS. Мой шаблон выглядит так:

  <template name="jobSeeker">
    <div class="items-form">
      {{> xEditable type="text" success=onSuccess placement="right" mode="inline emptytext="Your name..." value=usernameValue }}
    </div>
  </template>

Мой помощник по шаблону выглядит так:

    Template.jobSeeker.helpers({

      usernameValue: function()
      {

         Meteor.call('getProfileUsername',function(error, result) {

                if (error) return alert(error.reason);
                return result;    
                });   

      }
 });

Метод Meteor на стороне сервера:

 Meteor.methods({ 

 getProfileUsername: function() {

   var user = Meteor.user();    
   var currentUsername = Meteor.users.findOne(user._id);
   return currentUsername.username;

}

}); 

Пользователь сохраняется в MongoDB, а внутри коллекции находится документ с полем username. Но что-то не работает! Любая помощь ?


person Sysrq147    schedule 26.12.2014    source источник


Ответы (1)


вы возвращаете значение внутри обратного вызова метода, который не вернет значение помощнику

попробуй это

Template.jobSeeker.helpers({

      usernameValue: function()
      {

         Meteor.call('getProfileUsername',function(error, result) {

                if (error) 
                    return alert(error.reason);
                Session.set("username",username);    
                });  
         return  Session.get("username"); 

      }
 });
person Sasikanth    schedule 26.12.2014
comment
Спасибо, человек, это работает, я приму ответ. Хорош ли мой подход. Я новичок в Метеоре. Безопасно ли использование сеанса? - person Sysrq147; 26.12.2014
comment
У меня нет большого опыта, чтобы рассказать вам о безопасности, но если вы считаете, что сеансы небезопасны, посмотрите этот docs.meteor.com / # / full / reactivevar они служат той же цели, что и сеансы. Прочтите документ и, подходя к подходу, я делаю то же самое в своих проектах. - person Sasikanth; 26.12.2014