With Meteor's iron-router, how do you re-render the template from a template event?

StackOverflow https://stackoverflow.com/questions/23586360

  •  19-07-2023
  •  | 
  •  

Вопрос

My template shows different content based on a non-reactive value (in localStorage). I would like to do the following:

Template.foo.events
  'click #link': ->
    localStorage.setItem 'key', 'different'
    // re-render template foo

this.render() is undefined. Router.render('foo') does nothing.

Это было полезно?

Решение

The easiest way is to use a dependency tied to your value.

keyDep = new Deps.Dependency()

Template.foo.events
  'click #link': ->
    localStorage.setItem 'key', 'different'
    keyDep.changed()

Template.foo.key = ->
  keyDep.depend()
  return localStorage.getItem 'key'
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top