滑动事件后,会话设置为_id。然后,我将this._id传递给显示#each项目内的按钮的帮助程序。点击这个按钮后,模态将被打开,我可以删除该项目。 的HTML代码:流星session.set/get和jquery模态
<template name="territories">
<ul class="collection">
{{#each territories}}
{{> item}}
{{/each}}
</ul>
</template>
<template name="item">
<li class="collection-item hammerDiv">
{{#if deletable}}
<a href="#delmodal" class="waves-effect modal-trigger-item btn flat">Cancella</a>
{{/if}}
<div>{{name}} - n.{{number}}<a href="{{pathFor 'owners'}}" class="secondary-content">{{owners.length}}</a></div>
</li>
<div id="delmodal" class="modal">
<p>Sei sicuro di cancellare il territorio? Perderai tutte le note.</p>
<div class="row">
<a href="#" id="dismiss-cancel" class="waves-effect btn flat modal_close">Annulla</a>
<a href="#" id="delTerr" class="waves-effect btn flat modal_close">Cancella</a>
</div>
</div>
的JS代码:
Template.territories.helpers({
territories : function(){
return Territories.find();
}
});
Template.item.helpers({
deletable : function(){
var thisTerr = Session.get('deletable-item');
if (this._id == thisTerr){
return true;
}else{
return false;
}
}
});
Template.item.events({
'swipeleft .hammerDiv': function(e, t) {
e.preventDefault();
Session.set('deletable-item', this._id);
}
});
Template.item.rendered = function(){
//modal
$('.modal-trigger-item').leanModal();
//swipe gesture on the item, works fine
$('li.hammerDiv').hammer({
drag_min_distance:1,
swipe_velocity:0.1
});
};
模态只能当我在HTML中删除{{#如果删除的}}:在这种情况下,按钮总是可见和模式正常工作。但是,当Session设置为this._id时,我希望该按钮出现在该项目内,然后单击此处显示该模式。 我认为问题是DOM与Session.set的反应性。 我试图申请this和this建议没有结果。 您的帮助表示赞赏。 ;-)
尝试console.log这两个ID的助手,并检查它们是否相同 – Sindis 2014-11-23 18:22:09
是的,按钮显示/隐藏工作正常。问题是当我点击按钮时显示模式。 Modal仅在我不使用session.set/get时出现 – Arcy 2014-11-23 18:26:11
您的意思是您的'deletable'助手不能正常工作?这是我在写这篇评论时所设想的。尝试控制台登录this._id和Session.get来比较字段,也许这会让你更接近答案 – Sindis 2014-11-23 18:28:21