我正在尝试使用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"});
}
}
有什么想法吗?
答案 0 :(得分:15)
事件处理程序函数接收两个参数:event
,一个包含事件信息的对象,以及template
,一个模板实例,用于定义处理程序的模板。
第二个参数是可选的,但是当您想要使用find()
,findAll()
,firstNode()
和lastNode()
等模板实例函数时,需要在处理程序中接收它。
因此,要在事件处理程序中使用template.find()
,您需要将两个参数都传递为:
'click input.new_device': function (event, template) {
// your event handling code
}
答案 1 :(得分:5)
请使用第二个参数
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;
}
});