3

我需要在 Meteor 中动态创建模板的副本。副本应该具有相同的车把内容,但一组不同的帮助器、方法和事件处理程序。我怎样才能做到这一点?

我试过了:

Template.copy = function() {
    return Template.original.apply(this, arguments);
}

它显示正确的 html,但生成的模板不是反应式的。另一方面,当我这样做时

Template.copy = function() {
    return Meteor.render(Template.original.apply(this, arguments));
}

结果render是一个DocumentFragment我不知道如何正确转换为字符串或附加到 DOM 的对象。

4

2 回答 2

2

我想这个包应该可以正常工作。基本上,要实现您想要的,您需要访问您的模板raw_func,然后Template.__define__(name, raw_func)使用不同的名称进行调用。如果您破解原始文件,则可以这样做,就像在这里Template.__define__所做的那样)。但是,您需要一个包来在适当的时候进行所有黑客攻击。

于 2013-11-04T15:33:01.703 回答
1

我建议您查看新的 Meteor UI 部分。这里的所有代码都将发生相当大的变化。

我认为你应该能够做类似的事情

Template.copy = Template.extend(original, {});

如果您查看此流星谈话讨论或此常见问题解答,则会有更多详细信息。有一个预览版,您可以使用它进行测试

meteor --release template-engine-preview-3
于 2013-11-04T19:47:32.400 回答