2012-10-22 12 views
8

In meteora posso impostare vari aiutanti template in questo modo:Meteor set contesto modello complessivo

Template.story.title = function() { 
    return "title"; 
}; 
<template name="story"> 
    <h3>{{title}}</h3> 
    <p>{{description}}</p> 
</template> 

Che è grande, ma, se ho un sacco di variabili non vorrei impostare individualmente, voglio per passare il contesto al modello principale.

Come faccio?

Template.story.data = function() { 
    return {title:"title", description:"desc"}; 
}; 
<template name="story"> 
    <h3>{{title}}</h3> 
    <p>{{description}}</p> 
</template> 

Che non funziona. Grazie

risposta

12

È possibile impostare il contesto del modello quando si chiama:

{{> story data}} 

Template.outerTemplate.data = function() { 
    return {title:"title", description:"desc"}; 
} 

Oppure si può semplicemente utilizzare {{#with}} per impostare il contesto del modello al volo:

{{#with data}} 
    {{title}} 
{{/with}} 
5

Sei assolutamente sulla buona strada ma hai mancato di utilizzare la tua variabile di modello come l'hai definita. Come Template.story.data è definito per restituire un oggetto, lo deve usare come un oggetto:

<template name="story"> 
    <h3>{{data.title}}</h3> 
    <p>{{data.description}}</p> 
</template> 

VOILA. Naturalmente ogni variabile del template può contenere più di una semplice stringa.

+2

Grazie questo funziona, ma , non dovrebbe esserci un modo per impostare un contesto principale? i meteorologi dicono che "questo" è il contesto assunto. Ci dovrebbe essere un modo per impostare 'this' invece di' data'. Grazie. – Harry

Problemi correlati