我是 Meteor 新手。我试图从事件助手调用 Meteor.method('addTask') ,但不断收到错误:“调用方法'addTask'时出错:找不到方法'addTask'[404]”。我将把我的代码放在下面:
Template.add_task.events({
'submit .js-emoticon': function(event){
event.preventDefault();
// console.log('clicked');
// var text = event.target.text.value;
// $('#text_display').html(text);
// $('#text_display').emoticonize();
Meteor.call("addTask");
}
});
这里的 Meteor.method :
Meteor.methods({
'addTask':function(){
var task = event.target.text.value;
Items.insert({
created:new Date().toLocaleDateString("en-US"),
task:task
});
console.log(task);
}
});
两者都位于客户端文件夹中的 main.js 中。我尝试将该方法放在 server/main.js 上,但收到错误:“调用方法‘addTask’时出错:内部服务器错误 [500]”。
如果在客户端,它会将 #text 的值记录到控制台,但在服务器上,它甚至不会这样做。
正如我所说,我一直在学习 Meteor 并研究了这样做的方法。我显然错过了一些东西并且无法弄清楚。任何帮助将不胜感激。
最佳答案
您正在尝试从服务器代码中查看 DOM 元素。您需要在客户端获取该元素,然后将其传递给方法,如果您愿意,可以将其放入 /lib
文件夹中以进行延迟补偿。
客户:
Template.add_task.events({
'submit .js-emoticon': function(event){
event.preventDefault();
var task = event.target.text.value;
Meteor.call("addTask",task);
}
});
服务器:
Meteor.methods({
'addTask':function(task){
check(task,String);
Items.insert({ created: new Date(), task: task });
console.log(task);
}
});
当您将日期保留在 mongo 中时,您永远都不想将日期转换为字符串。这使得搜索日期变得不可能。
关于javascript - meteor 方法给出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36731045/