2016-02-25 3 views
-1

Я пытаюсь восстановить баланс, если функция «neww» истинна, а вниз - false. СЖВЗ случайное число от 0-1:Почему мой баланс не изменится?

Template.result.helpers({ 
    'neww': function(){ 
    return(Session.get('number') > 0.5 ? true : false) 
    } 
}); 

так это должно объявить новый истинным или ложным на основании случайного числа не так ли? Ну, у меня есть, если еще подобное заявление:

Template.balance.events({ 
    'click button': function() { 
    if (neww = true) { 
     Session.set('bal', Session.get('bal') + 1); 
    } else { 
     Session.set('bal', Session.get('bal') - 1); 
    } 
    } 
}); 

Он должен поднять свой баланс 1, если число больше .5 и опустить его в противном случае.

Весь мой код:

if (Meteor.isClient) { 
    // counter starts at 0 
    Session.setDefault('number', Random.fraction()); 
    Session.setDefault('word', ""); 
    Session.setDefault('bal', 5000); 


    Template.hello.helpers({ 
    number: function() { 
     return Session.get('number'); 
    } 
    }); 

    Template.balance.helpers({ 
    bal: function() { 
     return Session.get('bal'); 
    } 
}); 
    Template.hello.helpers({ 
    word: function() { 
    return Session.get('word'); 
    } 
}); 

    Template.hello.events({ 
    'click button': function() { 
     // increment the counter when button is clicked 
     Session.set("number", 0+Random.fraction()); 
    } 

    }); 

Template.result.helpers({ 
    'neww': function(){ 
    return(Session.get('number') > 0.5 ? true : false) 
    } 
}); 

Template.balance.events({ 
    'click button': function() { 
    if (neww = true) { 
     Session.set('bal', Session.get('bal') + 1); 
    } else { 
     Session.set('bal', Session.get('bal') - 1); 
    } 
    } 
}); 

} 

if (Meteor.isServer) { 
    Meteor.startup(function() { 
    // code to run on server at startup 
    }); 
} 

Любая помощь или советы будут оценены.

ответ

0

neww, как и все помощники, доступно только в ваших шаблонах. Если вы хотите использовать его в своем JS, просто сделайте его нормальной JS-функцией и вызовите ее как обычно. Вы также можете назначить эту функцию помощнику, если вы хотите использовать ее также в шаблонах.

В настоящее время neww будет не определен в контексте, который вы пытаетесь использовать, поэтому при нажатии кнопки вы увидите ошибки в консоли. Функция будет бросать, прежде чем она на самом деле что-то делает, поэтому ничего не происходит с балансом.

0
  1. Это не правильный синтаксис, если

    если (СЖВЗ = истина)

  2. neww не изменяется, это помощник, таким образом, вы не можете сделать это в случае так , Для того, чтобы позволить neww доступен на balance шаблоне, вы должны сохранить его в глобальную переменную как Session

Я знаю, что вы новичок в кодировании, поэтому, узнать об основных программирования первого. Работа с рамками, как meteor сразу заставит вас чувствовать себя скучно постепенно

+0

С чего начать? –

+0

Зависит от вашего фона. Но в наши дни нетрудно узнать, что такое ритуал? https://www.coursera.org/browse/computer-science?languages=en, затем https://www.coursera.org/learn/meteor-development –

0

Вот как вы можете исправить код, чтобы сделать это делать то, что вы хотите:

Template.balance.events({ 
    'click button': function() { 
    if (Session.get('number') > 0.5) { 
     Session.set('bal', Session.get('bal') + 1); 
    } else { 
     Session.set('bal', Session.get('bal') - 1); 
    } 
    } 
}); 

Вы можете полностью избавиться от neww помощника. Чтобы узнать больше о том, как работают помощники шаблонов, события и сеансы, проверьте Meteor Guide.

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