Can you pass a dynamic variable into a Meteor blaze template?

- QUESTION -

I saw the response to this stackoverflow post: Is there a way to pass variables into templates in Meteor?
The post only shows how to pass in a static value into blaze template. See the following example - I'm trying to pass in user.username into the template cookieTemplate
<template name="userTemplate">
  <p> Wellcome {{user.username}} </p>
  {{#each user.profile.cookies}}
    {{> cookieTemplate username={{user.username}} }}
  {{/each}}
</template>

<template name="cookieTemplate">
  {{username}} has cookie {{this.cookieName}}
</template>
I know that I could potentially do this with Session.set('username', blah), but I was wondering if I can pass a dynamic variable into template?

- ANSWER -

A simple solution to yours is just to pass the user object to the template
{{> cookieTemplate user=user }}
and use it inside the template as
{{user.username}}
or you write down some helper to create a data object with relevant attributes like:
Template.userTemplate.helpers({
  get_user: function() {
    return { username: Template.instance().user.username }
}
and then call the template with
{{> cookieTemplate user=get_user }}
and use the value by
{{user.username}}
I made something similar (helper function) as a MeteorPad to this thread Access an object's property names in a Blaze template
Maybe it helps you
Cheers, Tom

0 comments:

Post a Comment

Powered by Blogger.