【发布时间】:2018-03-27 10:22:11
【问题描述】:
我知道我的问题有点愚蠢,但我被困住了。 我有一张合同表,每一行都有一个更新按钮; 当我单击该按钮时,会显示一个包含合同编辑表单的模式。 一切正常,但我的问题是模式为每一行显示相同的合同。 更多描述,这是一个截图
这是我的模板助手
Template.ContractsList.helpers({
lists: function() {
Meteor.subscribe('listsMethod');
return Contracts.find({});
},
list: function() {
return Contracts.findOne();
}
});
这是我的模板事件
Template.ContractsList.events({
'click #editContract'(event) {
$("#showModal").modal("show");
console.log( Contracts.findOne({_id: this._id}) );
},
'click #hideModal'(event) {
$("#showModal").modal("hide");
},
});
这是我的模板
<template name="ContractsList">
<div class="modal fade" id="showModal">
<div class="modal-dialog modal-sm">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">edit</h4>
</div>
<div class="modal-body">
<div class="card-body">
{{#with list}}
<div class="form-group">
<label class="select">Name</label>
<input type="text" class="form-control" aria-describedby="emailHelp" value={{name}} />
</div>
<div class="form-group">
<label >Package</label>
<div >
<select id="role" name="select" class="form-control" >
<option value="package" selected disabled hidden >{{package}}</option>
<option value="freemium">freemium</option>
<option value="bronze">bronze</option>
<option value="silver">silver</option>
<option value="gold">gold</option>
<option value="platium">platium</option>
</select>
</div>
</div>
{{/with}}
</div>
</div>
<div class="modal-footer">
<Button class="primary" >Create contact</Button>
<Button class="secondary" id="hideModal">Cancel</Button>
</div>
</div>
</div>
</div>
<div class="breadcrumb">
<div class="table-responsive">
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Package Type</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
{{#each lists}}
<tr>
<td>
{{name}}
</td>
<td>
{{package}}
</td>
<td>
<Button class="btn btn-outline-primary" id="editContract"><img src="../../../../../img/icons/addcontact-icon.png" /></Button>
</td>
</tr>
{{/each}}
</tbody>
</table>
</div>
</div>
</template>
在模板事件的控制台日志中,我得到了我想要的正确数据
{_id:“Qu8pTSzLDLGKRNRzd”,名称:“ilyes”,包:“青铜”} {_id: “w7NDzerxivAjhK3dy”,名称:“ee”,包:“freemium”}
我该怎么办?
【问题讨论】:
-
findOne仅获取查询的第一个结果(如果可用)。如果您不提供像 id 这样的条件,您将获得与所有记录匹配的查询的第一个结果,因此这是意料之中的。如果您想获取特定项目,请在list助手中添加一个参数。 -
但是如何将 id 从事件传递到帮助列表?
标签: meteor