Meteor template.find 未定义
Posted
技术标签:
【中文标题】Meteor template.find 未定义【英文标题】:Meteor template.find is undefined 【发布时间】:2012-12-05 13:18:27 【问题描述】:我正在尝试使用template.find
让我的生活更轻松。
但在 javascript 控制台中我得到:undefined is not a function
这就是我所拥有的。它在template.find(...)
上被绊倒了
Template.superuserHUD.events =
'click input.new_device': function (template)
var id = template.find(".new_device_id").value;
Device_IPs.insert(ID: id, IP: "Not Connected");
有什么想法吗?
【问题讨论】:
你应该使用.getElementById()
方法直接检索元素的值文本,而不是找到匹配选择器的元素
您好 user1191551,您已提出 5 个问题,但未接受任何答案。接受您认为有用的答案被认为是一种普遍的礼貌。它还将提高对您未来问题的回答质量。谢谢!
感谢拉胡尔。看来我似乎有 2 个不同的帐户,因为我肯定回答并接受了比此帐户显示的更多的答案...
【参考方案1】:
事件处理函数接收两个参数:event
,一个包含事件信息的对象,以及template
,一个模板实例,用于定义处理程序的模板。
第二个参数是可选的,但是当你想使用find()
、findAll()
、firstNode()
和lastNode()
等模板实例函数时,需要在handler中接收。
因此,要在事件处理程序中使用 template.find()
,您需要将两个参数都传递为:
'click input.new_device': function (event, template)
// your event handling code
【讨论】:
嗯。我试过这个:'click input.new_device': function (event, template) var id = this.find(".new_device_id").value; console.log(id) 但它仍然没有工作。仍然未定义...这是html:ID: 你仍然做错了,在'click input.new_device'
this
将引用当前的window
对象,不是你正在尝试工作的template
和。所以,显然this.find()
将返回undefined
。所以,你必须写template.find()
而不是this.find()
。【参考方案2】:
请使用第二个参数
Template.superuserHUD.events
'click input.new_device': (event, template) ->
options =
id: template.find('.new_device_id').value
IP: 'Not Connected'
Device_IPs.insert options
有时像使用模板本身一样
Template.superuserHUD.events
event: (event, template) ->
@find('.new_device_id').value
对于咖啡文盲,在 javascript 中也是如此......
Template.superuserHUD.events(
'click input.new_device': function(event, template)
var options;
options =
id: template.find('.new_device_id').value,
IP: 'Not Connected'
;
return Device_IPs.insert(options);
);
Template.superuserHUD.events(
event: function(event, template)
return this.find('.new_device_id').value;
);
【讨论】:
对不起,我完全不明白这个语法。这是javascript吗?我从未见过“->”以上是关于Meteor template.find 未定义的主要内容,如果未能解决你的问题,请参考以下文章
Angular2-meteor - 在订阅函数中使用排序的 find() 后未定义的变量
Meteor:ArrayBuffer(FileReader 结果)未传递给 Meteor.method()
外部图像未在 Android 应用程序中显示 - Meteor - Cordova
Meteor+React 错误:未捕获的不变违规:_registerComponent(...):目标容器不是 DOM 元素