1

如果我的数据库中有一个字段包含像“Hello {{currentUser}}”这样的字符串,有没有办法让该值在呈现到模板时保持反应性?我还想看看是否可以通过帮助程序运行它并处理字符串替换,以某种方式将我自己的变量注入到输出中。

想法?

4

1 回答 1

1

到目前为止我提出的一种解决方案:

存储在数据库中的消息类似于:“你好,[用户],你好吗?”

然后,我像往常一样使用 {{#each}} 和预定义的模板呈现来自数据库的消息。

当消息实际呈现时,我通过一个助手传递它。帮助器将所有 [] 替换为,<span class="$1"></span>以便我可以直接针对每个项目。

调用消息模板的 render() 后,我知道消息正文包含已清理和准备好的内容(带有跨度),因此我使用this.$('.user').each()并循环遍历跨度的每个实例。

我还在我的页面中创建了一个名为“placeholderUser”的特殊模板,它只包含对 {{user}} 的调用。我已添加Template.placeholderUser.user = function(){}到代码中以提取值并保持反应性。

哇!现在我已经设置了结构,当在“each”中循环时,我可以调用: UI.insert(UI.render(Template.placeholderUser), el),它将在给定的范围内呈现模板并保持所有反应性。

这是超级hacky,但它的工作原理。还有其他更好的解决方案吗?

于 2014-05-07T21:19:49.353 回答