官方文件
当Template.myTemplate的实例为时,有点让我困惑。他们之间究竟有什么区别?一旦模板实例被“创建”,它们似乎都被调用。如果是这样,他们各自的用法是什么?附:我发现Meteor文档的很大一部分缺乏可靠的例子,初学者很难理解。[render]被调用一次 渲染到DOM节点并第一次放入文档。
在评估模板的逻辑之前调用[created]回调 这是第一次。
答案 0 :(得分:8)
在屏幕上呈现DOM后触发模板rendered
回调。 1}}回调是在实例化模板但尚未渲染时触发的。
您可以使用created
回调来更改页面上的任何内容。例如,如果您使用rendered
,则需要将select2
选项转换为更好的select2版本,您可以执行此操作(您需要select2包,但任何jquery插件的工作方式都相似)
<select>
您无法在Template.hello.rendered = function() {
this.$("select").select2({});
}
上执行此操作,因为尚未在DOM上绘制select2。
您可以使用.created
设置任何变量。例如,如果您在页面的某个位置使用.created
,则可以使用Session.get("myvalue")
将其重置为默认值,例如
.created
通常,渲染回调用于以某种方式操纵DOM。创建的回调在不是关于DOM而是关于管理变量或数据时使用。
以下是一些区别。
你会使用.created&amp;如果您使用每个模板订阅(最近添加到Meteor),则不会显示:
Template.hello.created = function() {
Session.set("myvalue", null);
}
您可以使用.rendered初始化Google地图
Template.hello.created = function() {
this.subscribe("some_publication");
}