我有最简单的流星项目,但我坚持做一些基本的事情。我有一个表单字段,当我输入一个项目时,它进入一个Mongo集合。我检索并显示该集合,以及要删除或编辑的按钮。我想要发生的是你点击编辑,该项目变成一个文本框(预先填充原始值),您可以更改,点击返回,并更新项目。我坚持如何正确传递_id和/或如何只将正确的条目转换为字段。
我的.html文件:
<head>
<title>Memorial</title>
</head>
<body>
<h1>Memorial Testing!</h1>
<form class="new-task">
<input type="text" name="text" placehoder="Type stuff here" />
</form>
{{> listing}}
</body>
<template name="listing">
<ul>
{{#each tasks}}
{{> crudlist}}
{{/each}}
</ul>
</template>
<template name="crudlist">
{{#if editor}}
{{#if editid == this._id}}
<li><input type="text" name="text" placehoder="Type stuff here" value="{{text}}"/></li>
{{else}}
<li>{{text}} :: <button name="delete" class="delete">Delete</button><button name="edit" class="edit">Edit</button></li>
{{/if}}
{{/if}}
</template>
我的.js文件:
Tasks = new Mongo.Collection("tasks");
if (Meteor.isClient) {
Template.listing.helpers({
tasks: function() {
return Tasks.find({});
}
});
Template.crudlist.helpers({
editor: function() {
return Session.get("editor");
},
editid: function() {
return Session.get("editid");
}
});
Template.body.events({
"submit .new-task": function (event) {
var text = event.target.text.value;
Tasks.insert({
text: text,
createdAt: new Date()
});
event.target.text.value = "";
return false;
}
});
Template.crudlist.events({
"click .delete": function () {
Tasks.remove(this._id);
},
"click .edit": function () {
Session.set("editor","true");
Session.set("editid",this._id);
}
});
}
if (Meteor.isServer) {
Meteor.startup(function () {
// code to run on server at startup
});
}
感谢您的帮助。
答案 0 :(得分:0)
要获得您刚刚点击的内容,您应该使用文档http://docs.meteor.com/#/full/eventmaps中的event.target。
Template.crudlist.events({
"click .delete": function (event,template) {
var whatYouJustClicked = event.target,
targetID = $(whatYouJustClicked).attr('id')
},
"click .edit": function (event,template) {
var whatYouJustClicked = event.target,
targetID = $(whatYouJustClicked).attr('id')
Session.set("editor","true");
Session.set("editid",targetID);
}
});