Meteor 中的 Template.created 和 Template.onCreated 有什么区别?
What is the difference between Template.created and Template.onCreated in Meteor?
文档中提到了 Template.templatename.onCreated
(以及 .onRendered
和 .onDestroyed
方法)。
但是当我调用这些时什么也没有发生。例如,如果我调用 Template.templatename.created
,这有效。
知道发生了什么事吗?我误读了文档中的内容吗?这是对其他内容的引用吗?
编辑:我刚刚在源代码中找到了这个:
https://github.com/meteor/meteor/blob/master/packages/blaze/template.js#L65
在第 180 行,这些在 1.1 中被标记为已弃用,但我仍然没有从 onCreated 得到任何爱....
有人知道我做错了什么吗?
Template.channels_admin.onCreated = function () {
// .... doesn't run
};
created
是旧的 onCreated
.
这样使用.onCreated(function() {
这让您在编写包时变得非常棒。
在 meteor 1.0.4 之前,created
是所有模板可用的函数,运行 在任何模板逻辑(事件、渲染、助手等)之前。在 1.0.4 中,它被替换为 onCreated,这是一个 注册回调的函数 (同样每个回调在任何模板逻辑之前运行一次)。
created
保留在原位以免破坏现有代码,但被认为已弃用,取而代之的是 onCreated
.
因为 created
是模板上的一个函数,它可以通过以下方式分配:
Template.myTemplate.created = function() {console.log('here');};
created
不应该直接调用。
正如您从文档中看到的那样,onCreated
是使用如下函数调用的:
Template.myTemplate.onCreated(function() {
console.log('hello');
});
onCreated
的好处是您可以为同一个模板注册多个回调。在实践中,这可能不会经常出现,但是在您需要附加到外部包提供的模板的情况下,这很好。同样的逻辑适用于 onRendered
和 onDestroyed
.
从 meteor 1.1 开始,不推荐使用 created、rednered 和 destroyed 方法来代替 onCreated、onRendered 和 onDestroyed。
其次,对之前声明的语法有一个小改动:
Template.channels_admin.created = function () {
// .... this is deprecated
};
但是从 1.1 开始,它应该这样声明:
Template.channels_admin.onCreated(function () {
// .... works like a charm.
});
Template.templatename.onCreated
(以及 .onRendered
和 .onDestroyed
方法)。
但是当我调用这些时什么也没有发生。例如,如果我调用 Template.templatename.created
,这有效。
知道发生了什么事吗?我误读了文档中的内容吗?这是对其他内容的引用吗?
编辑:我刚刚在源代码中找到了这个:
https://github.com/meteor/meteor/blob/master/packages/blaze/template.js#L65
在第 180 行,这些在 1.1 中被标记为已弃用,但我仍然没有从 onCreated 得到任何爱....
有人知道我做错了什么吗?
Template.channels_admin.onCreated = function () {
// .... doesn't run
};
created
是旧的 onCreated
.
这样使用.onCreated(function() {
这让您在编写包时变得非常棒。
在 meteor 1.0.4 之前,created
是所有模板可用的函数,运行 在任何模板逻辑(事件、渲染、助手等)之前。在 1.0.4 中,它被替换为 onCreated,这是一个 注册回调的函数 (同样每个回调在任何模板逻辑之前运行一次)。
created
保留在原位以免破坏现有代码,但被认为已弃用,取而代之的是 onCreated
.
因为 created
是模板上的一个函数,它可以通过以下方式分配:
Template.myTemplate.created = function() {console.log('here');};
created
不应该直接调用。
正如您从文档中看到的那样,onCreated
是使用如下函数调用的:
Template.myTemplate.onCreated(function() {
console.log('hello');
});
onCreated
的好处是您可以为同一个模板注册多个回调。在实践中,这可能不会经常出现,但是在您需要附加到外部包提供的模板的情况下,这很好。同样的逻辑适用于 onRendered
和 onDestroyed
.
从 meteor 1.1 开始,不推荐使用 created、rednered 和 destroyed 方法来代替 onCreated、onRendered 和 onDestroyed。
其次,对之前声明的语法有一个小改动:
Template.channels_admin.created = function () {
// .... this is deprecated
};
但是从 1.1 开始,它应该这样声明:
Template.channels_admin.onCreated(function () {
// .... works like a charm.
});