2015-02-05 7 views
11

Utilizzando la node.js Meteor quadro -Meteor currentUser

come mai la variabile currentUser è definito in un modello come ad esempio qui:

<template name="main_template"> 
    <div class="container"> 
    {{#if currentUser}} 
    {{> add_player_form_template}} 
    {{/if}} 
    </div> 
</template> 

ma quando chiamo currentUser dalla console, è indefinita:

enter image description here

tuttavia, è definito Meteor.userId:

enter image description here

perché è questo?

risposta

11

{{ currentUser}} è un helper nel modello main_template.

Nel client Javascript è necessario definire tale metodo di supporto. Qualcosa di simile:

Template.main_template.helpers({ 
    currentUser: function() { 
    return Meteor.userId(); 
    } 
}) 

Questo può aiutare anche http://docs.meteor.com/#/basic/templates.

+2

Probabilmente vorrai 'return Meteor.user()' –

9

{{ currentUser }} è un helper di modelli che chiama semplicemente Meteor.user().

Nella console, è necessario chiamare Meteor.user().

+0

ok, thx, c'è un modo per accedere a quelle funzioni di template helper dalla console? –

+1

@AlexMills: c'è [nessuna API pubblica per chiamare le funzioni di supporto] (http://stackoverflow.com/questions/27962532/accessing-template-helper-dictionary-in-meteor-event-handler#comment44318599_27962532) perché se hai bisogno di un helper chiamato da più di un posto, puoi definirlo come una funzione al di fuori del dizionario degli helper, e poi chiamarlo da qualsiasi luogo tu voglia, incluso il suo passaggio come valore del dizionario helper. Nel caso particolare di 'currentUser', c'è già' Meteor.user() '. –