如果我的数据库中有一个字段,其中包含" Hello {{currentUser}},"有没有办法让这个值在渲染到模板时保持反应?我也想看看我是否可以通过帮助程序运行它并处理字符串替换来以某种方式将我自己的变量注入输出。
思想?
答案 0 :(得分:1)
到目前为止,我提出了一个解决方案:
存储在数据库中的消息类似于:“你好,[用户],你好吗?”
然后我像往常一样使用{{#each}}和预定义的模板从数据库中呈现消息。
当实际呈现消息时,我通过帮助程序传递它。帮助者用[{1}}替换所有[],以便我可以直接定位每个项目。
一旦调用了消息模板的rendered(),我知道消息体包含已清理和准备好的内容(带有跨度),因此我使用<span class="$1"></span>
并遍历每个跨度实例。
我还在我的页面中创建了一个名为“placeholderUser”的特殊模板,该模板仅包含对{{user}}的调用。我在代码中添加了this.$('.user').each()
以获取值并保持反应性。
呼!现在我已经设置了结构,当在“each”中循环时,我可以调用:
Template.placeholderUser.user = function(){}
,它将在给定范围内呈现模板并保持所有反应性。
这是超级hacky,但它的工作原理。还有其他更好的解决方案吗?