我是流星的新手,正在尝试制作一个简单的博客应用程序。但是我的插入功能似乎无法正常工作。这是我的代码。
这是我的模板
<template name="addpost">
<div class="container">
<h1> Add New Post</h1>
<form class="new-post">
<label class="title">
Title:
<input type="text" name="title" placeholder="Type to add new tasks" />
</label>
<label class="post-content">
Write here:
<input type="text" name="body" placeholder="Type to add new tasks" />
<button class="add-post">Add Post</button>
</label>
</form>
</div>
</template>
JS文件内容
Posts = new Meteor.Collection("posts");
if (Meteor.isClient) {
Template.addpost.events({
"submit .new-post": function(event){
var title = event.target.title.value;
var body = event.target.body.value;
Meteor.call("addPost", title, body);
}
});
}
Meteor.methods({
addPost: function(title, body){
Posts.insert({
title: title,
body: body,
createdAt : new Date()
});
}
});
我尚未删除自动发布和不安全的软件包。下面是mongoDB查询输出。
最佳答案
默认情况下,提交表单时,它将发出另一个HTTP请求,该请求将重新加载页面并停止流星正在执行的操作。为避免这种情况,您需要阻止默认操作:
Template.addpost.events({
submit: function(event) {
event.preventDefault();
// the rest of your code goes here
}
});
除此之外,您的代码对我来说也可以正常工作。您可以使用以下命令进行验证:Web控制台中的
Posts.find().fetch()
或通过meteor shell
。