我正在探索Discover Meteor的显微镜项目,我遇到了一个问题。我收到以下代码的“找不到方法”错误:
HTML模板 - 显微镜/客户端/模板/帖子/ post_submit.html
<template name="postSubmit">
<form class="main form">
<div class="form-group">
<label class="control-label" for="url">URL</label>
<div class="controls">
<input name="url" id="url" type="text" value="" placeholder="Your URL" class="form-control"/>
</div>
</div>
<div class="form-group">
<label class="control-label" for="title">Title</label>
<div class="controls">
<input name="title" id="title" type="text" value="" placeholder="Name your post" class="form-control"/>
</div>
</div>
<input type="submit" value="Submit" class="btn btn-primary"/>
</form>
JS - 显微镜/客户端/ templates / posts / post_submit.js
Template.postSubmit.events({
'submit form': function(e) {
e.preventDefault();
var post = {
url: $(e.target).find('[name=url]').val(),
title: $(e.target).find('[name=title]').val()
};
Meteor.call('postInsert', post, function(error, result) {
// display the error to the user and abort
if (error)
return alert(error.reason);
Router.go('postPage', {_id: result._id});
});
}
});
我不知道如何调试这个,因为我在控制台中没有错误。请问任何人都可以建议我哪里出错了吗?
答案 0 :(得分:2)
您很可能需要将方法postInsert
添加到服务器端。如果您在Discover Meteor中继续关注,他们会在下一部分中进行操作 - https://book.discovermeteor.com/chapter/creating-posts
例如,您将该方法放在名为lib/collections/posts.js
的文件中,如此
Meteor.methods({
postInsert: function(postAttributes) {
check(Meteor.userId(), String);
check(postAttributes, {
title: String,
url: String
});