2015-01-08 4 views
-1

В следующем коде я ожидаю, что {{#if adding_answers}} Переменная сеанса будет true, когда я нажимаю кнопку. Он запускает "click .setup_answers':function", но шаблон {{> newAnswers}} никогда не отображается, потому что {{#if adding_answers}} это неправда. Я вижу, что он получает значение true через console.log, но курица возвращается в HTML ничего. Я думал, что, установив его на значение, которое метеор реагирует, его можно будет увидеть?Meteor 1.0.2.1 переменная сеанса не остается установленной

HTML код

<template name="newQuestions"> 
    {{#if adding_answers}} <!-- Session Variable --> 
     {{> newAnswers}} 
    {{/if}} 

     <div class="panel panel-default"> 
      <div class="panel-heading"> 
       <h3 class="panel-title">Questions</h3> 
       <p></p> 
       <form class="form-horizontal"> 
        <div class="form-group"> 
         <label class="sr-only" for="inputQuestion">Question</label> 
         <input type="textarea" class="form-control" name="inputQuestion"  id="inputQuestion" autofocus="1" placeholder="Enter New Question" rows="5"> 
        </div> 
        <button type="button" class="setup_answers btn-primary">Setup Answers</button> 
       </form> 
      </div> 
     </div> 
</template>` 

JS код

`Template.newQuestions.events({ 
    "click .archive": function(event, template){ 
    return Meteor.call('archiveTodo',this._id,!this.archived); 
    }, 
    'click .todochecked':function(event,template){ 
    return Meteor.call('completeTodo',this._id,!this.completed); 
    }, 
    'click .setup_answers':function(event,template){ 
    var question = $('#inputQuestion').val(); // Question must be entered. 
    if (question === "") { 
     alert("The question can not be blank."); 
     Session.set('adding_answers',false); 
    } else { 
     Session.set('adding_answers',true); // Causes template newAnswers to be displayed 
    } 
    return session.get('adding_answers'); 
    } 
});`  

ответ

0

Прежде всего, вы не можете ничего из обработчика событий, как переменные Session

и второй вам нужно определить помощника для adding_answers Отображаемо как указано ниже для кода для wok

Template.newQuestions.helpers({ 
    adding_answers: function(){ 
    return Session.get('adding_answers') 
    } 
}) 

Подробнее о помощниках here

+0

@ pld32 ok, это похоже на большой проект, можете ли вы указать, где он не используется? – ajduke

+0

@ pld32 Я вижу, что он используется, проверьте 'client \ views', а затем любой js-файл внутри каталога' js' – ajduke

+0

OMG- Теперь все выглядит хорошо. Можете ли вы уточнить переменные сеанса для меня. Я вижу, что я получаю «сеанс не определен» в консоли. Должна ли определяться переменная сеанса с дефолтом по умолчанию или что-то еще? – pld32

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