Meteor 如何通过html按钮提交集合
我有一个html按钮。我想在单击时插入一个集合。我该怎么做?我知道如何从控制台执行,但不知道如何从页面执行。我现在正在使用基本的hello world示例 下面是我的代码Meteor 如何通过html按钮提交集合,meteor,Meteor,我有一个html按钮。我想在单击时插入一个集合。我该怎么做?我知道如何从控制台执行,但不知道如何从页面执行。我现在正在使用基本的hello world示例 下面是我的代码 var savedState = new Meteor.Collection("SavedState"); Template.hello.events({ 'click input' : function () { savedState.insert({Category:"SYNTHS", items:
var savedState = new Meteor.Collection("SavedState");
Template.hello.events({
'click input' : function () {
savedState.insert({Category:"SYNTHS", items: [{Name:"whatever"}]});
}
});
}
你犯了什么错误?假设围绕它编写的代码是正确的,那么您编写的代码是有效的。见下文 Javascript:
var savedState = new Meteor.Collection("SavedState");
if (Meteor.isClient) {
Template.hello.events({
'click input' : function () {
savedState.insert({Category:"SYNTHS", items: [{Name:"whatever"}]});
}
});
}
模板:
<body>
{{> hello}}
</body>
<template name="hello">
<input type="button" value="Click" />
</template>
{{>你好}
事实上你是对的,我的代码确实有效。我不知道该如何验证,仅此而已。savedState.find({}).count();但作为旁注,我想知道将它放在iClient块中的意义是什么。这两种方法似乎都有效。如果将insert放在iClient之外,它将同时在客户端和服务器上运行。你通常不想这样。事实上,我想不出一个你什么时候想要的例子。如果客户机执行了插入操作,服务器将听到该消息,如果客户机具有权限(在Hello World中是这样做的,因为autopublish处于启用状态),服务器将允许该操作。反之亦然:如果服务器执行插入,并且客户机已订阅,则数据将进入客户机集合。当然,在两端强制插入是可能的,但对AIK来说并不是特别有用。您应该将新Meteor.Collection
放在外部,因为您希望它同时在服务器和客户端上运行。这就是为什么要将代码放在isClient/isServer之外的最佳示例