【发布时间】:2016-12-31 06:41:58
【问题描述】:
我在 Meteor 中有一个反应表,其中列出了用户集合中的用户名和电子邮件地址。我想点击电子邮件地址并弹出一个模式,该电子邮件地址填写在“收件人”字段中。
带有反应式表格和电子邮件模式的模板:
<template name="Compete">
{{> reactiveTable class="table table-bordered table-hover" settings=settings }}
{{> emailModalTemplate settings.fields}}
</template>
设置助手:
Template.Compete.helpers({
settings: function(){
if (Meteor.user()){
var col = Meteor.users.find({ }, {fields: {profile:1, emails:1} } );
var email = 'emails.0.address';
return {
collection: col,
showFilter: false,
showNavigation: 'never',
fields: [{
key: 'profile.userName',
label: 'Player'
}, {
key: email,
label: 'Email',
fn: function(email){
return new Spacebars.SafeString(
'<a href="#" class="sndLnk" value="'+email+'">'+email+'</a>'
);
}
}]
};
}
},
这是电子邮件模式模板:
<template name="emailModalTemplate">
<div class="modal fade" id="emailModal">
<div class="modal-dialog modal-sm">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Send Email</h4>
</div>
<div class="modal-body">
<form role="form" id="email-form">
<input type="email" id="inputEmail" placeholder="{{addToAddr}}">
<input type="text" id="inputSubject" placeholder="Subject">
<textarea id="inputBody" rows="5" placeholder="Message"></textarea>
<div class="modal-footer">
<button type="submit" class="btn btn-primary">Send</button>
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
</div>
</form>
</div>
</div>
</div>
</div>
</template>
此时,{{addToAddr}} 助手只是控制台记录“this”,但我能得到的只是反应表设置中的实际键,而不是值。我是否通过传入响应式表助手来传递正确的东西?
我还可以向电子邮件模式模板传递什么来获取实际的电子邮件值,然后我可以使用这些值来填充电子邮件地址字段?
编辑:最后要补充的一点: 我的点击事件如下:
'click .sndLnk': function(e){
e.preventDefault();
console.log( $(e.currentTarget).attr('value') );
$('#emailModal').modal('show');
}
此处的console.log 准确显示了我要传入的电子邮件地址,但如何将其传入电子邮件模式表单?我通过助手假设,但也许这是错误的?
【问题讨论】: