2015-09-01 85 views
1

我是新來的流星,試圖做一個簡單的博客應用程序。但我的插入功能似乎沒有正常工作。這是我的代碼。MeteorJS插入功能不起作用

這是我的模板

<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查詢輸出。

enter image description here

回答

2

默認情況下,當您提交它使另一個HTTP請求這將刷新頁面,並阻止任何流星在做一個形式。爲了避免這種情況,你需要防止默認動作:

Template.addpost.events({ 
    submit: function(event) { 
    event.preventDefault(); 
    // the rest of your code goes here 
    } 
}); 

除此之外,你的代碼正確爲我工作。您可以在Web控制檯中通過Posts.find().fetch()或通過meteor shell進行驗證。

+0

Web控制檯現在說「錯誤調用方法'addPost':找不到方法[404]」 – TA3

+0

您發佈問題後可能會有一些錯字,因爲它對我來說工作正常。如果你可以在[meteorpad](http://meteorpad.com/)上重現問題,或者給出一個github回購的鏈接,我可以再看一次。 –

+0

github回購:https://github.com/TA-3/blog-app – TA3