2016-02-25 4 views
0

Je suis un tout nouveau codeur et j'ai une question sur mon code dans météore. Si j'ai un modèle (appelé résultat), une fonction (appelée neww) et un nombre (appelé nombre et généré aléatoirement de 0-1), comment créer un booléen dans un helper qui a renvoyé un vrai ou valeur false basée sur si le nombre était supérieur à 0.5 ou non? J'ai:Je suis confus au sujet des booléens

Modifier

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

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

    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(number > 0.5 ? true : false) 
    } 
}); 

} 

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

Mais cela renvoie toujours faux.

Suis-je manque quelque chose

+1

Où est 'number' venir? – elclanrs

+0

Qu'est-ce que 'number'? Où est-ce que ça se passe? – Pointy

+0

nombre est un nombre généré aléatoirement à partir de 0-1 créé avec Random.fraction() –

Répondre

1

Vous devez changer votre commande de

return(number > 0.5 ? true : false) 

dans

return(Session.get('number') > 0.5 ? true : false) 

Parce que vous accédez à la valeur numérique à travers les modèles

+0

Vous monsieur, êtes un dieu parmi les hommes! Je vous remercie infiniment. J'ai essayé de comprendre cela pendant 2 jours. –

+0

lol pas de soucis :) –

+0

@ThaiTran pourquoi pas simplement 'retourner Session.get ('nombre')> 0.5;'? Les opérateurs logiques renvoient des booléens. –

-2

Dans les langues de la famille C vous pouvez utiliser l'opérateur ternaire (s'il vous plaît Google).

Ça va: Question? True_action: False_action;

Pour l'exemple donné ci-dessus vous code:

return(number > 0.5 ? true : false) 

Cependant, je ne sais pas si la langue que vous utilisez a cet opérateur; s'il te plaît, regarde-le.

+1

Qu'est-ce que cette réponse a à voir avec quoi que ce soit? – Pointy

+0

Je l'ai essayé et ça n'a pas fonctionné, j'ai l'impression de manquer quelque chose d'évident. –