我想在会话变量更改时重新渲染块助手。
UI.registerHelper "myHelper", () ->
this.changedSession = Session.get 'someSessionVariable'
return Template.myTemplate
助手实际上已执行,但视图未更新。理想情况下,只有助手渲染的部分会被重新渲染(Template.myTemplate)。但是重新渲染整个页面也是一种选择。
我怎样才能做到这一点?
一个非常简单的应用程序,说明了我的问题:
咖啡脚本:
if Meteor.isClient
Template.hello.greeting = () ->
Session.get "greeting"
UI.registerHelper "myHelper", (options) ->
this['greeting'] = Session.get 'greeting'
return Template.test
的HTML:
<template name="hello">
{{greeting}}
{{#myHelper test="test" more="more"}}
{{/myHelper}}
</template>
<template name="test">
{{this.greeting}}
</template>
如果我更改会话变量。问候语本身已更新,包含问候语的模板未更新。
我知道这不是在助手中获取会话的流星方式,但我将其用于原型设计框架,并且该助手可以在任何模板中使用,而无需为助手定义数据上下文。