Meteor insert语句不从客户端模板插入字段

时间:2015-12-26 15:26:13

标签: meteor insert

我正在编写一个简单的HTML表单,我试图通过列表和文本字段插入值。但是,当我使用StudentMaster.insert语句时,该语句不会填充任何集合中任何文档的任何字段。它只是创建一个带有id字段的对象。

这是我的代码 -

if(Meteor.isClient){
Template.nameT.events ({
"mousedown #save" : function(event){
 event.preventDefault();

StudentMaster.insert({admtype:$('#admtype').value});
StudentMaster.insert({enrollno:$('#enrollno').value});
StudentMaster.insert({thisyradm:$('#thisyradm').value});
},
"click #update" : function(event){
event.preventDefault();
rs = StudentMaster.find();
StudentMaster.insert({'admtype':$('#admtype').toString});
StudentMaster.insert({'enrollno':$('#enrollno').toString});
StudentMaster.insert({'thisyradm':$('#thisyradm').toString});
}
})
}

这是HTML -

<template name="nameT">
<select id = "admtype">
<option>New</option>
<option>Old</option>
</select>   <input type="text" placeholder = "Enroll No." id = "enrollno">
<input type="text" placeholder = "This Year Adm" id = "thisyradm"><br>
</template>

<head>
<title>School Project</title>
</head>

<body>
<h1>Welcome to School Project!</h1>
{{> nameT}}
</body>

2 个答案:

答案 0 :(得分:1)

您的插入过程是错误的。您的代码基本上在数据库中插入3 rows。假设您有3个值需要插入数据库。以下代码段将提示您如何假设属性为admtypeenrollnothisyradm

StudentMaster.insert({
admtype:$('#admtype').value,
enrollno:$('#enrollno').value,
thisyradm:$('#thisyradm').value
});

是的insertion返回一个对象id,它是存储在数据库中的_id值。

答案 1 :(得分:0)

确保Collection.allow() Student收集的admtype规则允许从客户端插入,因为Meteor Docs说here

如果您希望enrollnothisyradmStudentMaster.insert({ admtype:$('#admtype').value, enrollno:$('#enrollno').value, thisyradm:$('#thisyradm').value }); 作为单行/文档的属性/列,则必须更改插入代码,如下所示

_id

否则它将创建3个不同的行。

要更新行,我建议您使用该行的Student.insert()作为Collection.update的选择器。哪个是Student.allow()函数的返回值。

此处还必须确保Meteor.method规则允许从客户端进行更新。我不建议从客户端更新集合。最好将服务器端_idupdate_data<!DOCTYPE html> <html lang="en-us"> <head> <meta charset="UTF-8"> <title>Sample Title by Somebody</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" type="text/css" href="stylesheets/normalize.css" media="screen"> <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'> <link rel="stylesheet" type="text/css" href="stylesheets/stylesheet.css" media="screen"> <link rel="stylesheet" type="text/css" href="stylesheets/github-light.css" media="screen"> </head> <body> <section class="page-header"> <h1 class="project-name">Sample Title</h1> <h2 class="project-tagline"></h2> <a href="" class="btn">View on GitHub</a> <a href="" class="btn">Download .zip</a> <a href="" class="btn">Download .tar.gz</a> </section> 一起用作更新集合的参数。