模板之间的区别是什么?创建和模板.onCreated在Meteor
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
};
在meteor 1.0.4之前,created
是一个在任何模板逻辑(事件、呈现、helper等)之前运行的所有模板可用的函数。在1.0.4中,它被onCreated取代,onCreated是一个注册回调的函数(每个回调在任何模板逻辑之前运行一次)。
created
被保留在适当的位置,但被认为是不赞成onCreated
。
因为created
是模板上的函数,所以可以通过:
Template.myTemplate.created = function() {console.log('here');};
不能直接调用created
从文档中可以看到,onCreated
是用这样的函数调用的:
Template.myTemplate.onCreated(function() {
console.log('hello');
});
关于onCreated
的好处是您可以为同一个模板注册多个回调。在实践中,这可能不会经常出现,但是在需要附加到外部包提供的模板的情况下,这是很好的。同样的逻辑也适用于onRendered
和onDestroyed
。
从流星1.1开始,已经弃用了create, redered和destroy方法来代替onCreated, onrender和onDestroyed。
其次,前面的语法有一个小的改变,它是这样声明的:
Template.channels_admin.created = function () {
// .... this is deprecated
};
但是从1.1开始,它应该这样声明:
Template.channels_admin.onCreated(function () {
// .... works like a charm.
});
created
是旧的onCreated
。
像这样使用.onCreated(function() {
- 在chrome.tabs.onCreated之后加载HTML页面
- Meteor如何接收HTTP请求
- Meteor-将选定窗体中的对象添加到集合中
- Meteor上的启动页面
- Meteor方法在客户端返回null,在客户端运行的相同方法返回正确的值
- Meteor-添加用户自定义字段的方法不起作用
- Meteor忘记了密码的实现
- 链接所有<a>Meteor
- 在Meteor项目中安装并包含npm模块后出错
- Meteor JS中代码的重复使用部分
- Meteor Router数据函数被调用两次
- 基于localStorage的Meteor激活模板
- React+Meteor:this.ops返回未定义
- 如何将PHP get查询转换为Meteor's HTTP.get()
- 如何将javascript变量传递到Meteor Spacebars模板中
- 部署时使用npm包时发生Meteor错误
- Meteor如何运行服务器端python脚本
- 谷歌地图根本不适用于Meteor-iOS
- 在Meteor中的onCreated中获取模板变量
- 模板之间的区别是什么?创建和模板.onCreated在Meteor