下面我有一个带有数字输入表单的基本模板。当您在表单中键入一个数字并单击添加一个 Div 列表时,就会创建。Div 是使用“synth”类和“synth”+ 一个数字的 id 创建的。这些数字根据计数器连续排列。
我不仅想将这些信息存储在数据库中,而且这样做的方式是(最终)当用户登录时,他们可以访问他们的 Div 列表作为他们之前登录的“保存状态”。
我什至不确定我是否会以适当的方式处理这件事。我只是将 createSynth() 函数粘贴在 Collection 插入列表中。我有一种“正确”地做到这一点的感觉,我应该有两个并行工作的事件 - 一个发送到列表 Collection,另一个发送到 dom/Template。然后,这两个块将交换数据(以某种方式),这些数据共同产生“已保存状态”的错觉。
下面是我到目前为止的代码。
HTML
<head>
<title></title>
</head>
<body>
{{> start}}
</body>
<template name="start">
<input id ="amount" type ="number" />
<input id ="submit" type="button" value="Add" />
<div id="applicationArea"></div>
</template>
Javascript
var lists = new Meteor.Collection("Lists");
var counter = 0;
counterSynth = 0;
if (Meteor.isClient) {
'use strict';
Template.start.events({
'mousedown #submit' : function () {
var amount = document.getElementById("amount").value;
for(i=0;i<amount;i++) {
lists.insert({SoundCircle:createSynth()}); // I am inserting the entire function call, is this the right path?
}
function createSynth() {
var synth = document.createElement("div");
synth.className = "synth";
synth.id = "synth" + (counterSynth++);
applicationArea.appendChild(synth);
};
},
});
}
if (Meteor.isServer) {
Meteor.startup(function () {
// code to run on server at startup
});
}