Meu código
{{#with profile}}
{{> foundation}}
{{/with}}
<template name="foundation">
<div id="userprofile" class="reveal-modal" data-reveal>
<h2 id="selectedProfileName">{{name}}</h2>
<div class="large-12 columns paddingtop">
<div class="large-3 columns">
<img id="selectedProfilePicture" src="/images/{{picurl}}" />
<p id="selectedProfileLink" ><a href="/accounts/profile/{{_id}}" >Open Profile</a></p>
</div>
</div>
<div class="columns right">
<div id="btnCancel" class="btnCancel button button-register small">Cancel</div>
<div id="btnConfirm" class="btnConfirm button button-register small" data={{_id}}>Okay</div>
</div>
<a class="close-reveal-modal">×</a>
</div>
</template>
Eu estou abrindo o modal usando JS
$("#userprofile").foundation("reveal","open");
Meus eventos são
Template.foundation.events({
"click .btnConfirm":function(evt){
console.log("confirm");
$("#curator_name").val("");
$("#confirmationText").html("");
},
"click .btnCancel":function(){
console.log("close");
},
});
Eles não estão atirando, ninguém enfrentou o mesmo problema.
Eu tentei colocar todo o código modal no modelo pai e ligar os eventos, Isso também não está funcionando
Respostas:
11 para resposta № 1É bem possível que, como a UI semântica eEm alguns outros frameworks, os modais Foundation são removidos do DOM e adicionados programaticamente em outro lugar (como no final do corpo). Se esse for o caso, os manipuladores de eventos registrados no modelo incluído não poderão mais encontrá-los.
A solução é definir um modelo dentro seu modal e anexe os eventos a isso. Algo como:
<template name="foundation">
<div id="userprofile" class="reveal-modal" data-reveal>
{{> foundationInner}}
</div>
</template>
<template name="foundationInner">
<h2 id="selectedProfileName">{{name}}</h2>
<div class="large-12 columns paddingtop">
...
</div>
<a class="close-reveal-modal">×</a>
</template>
Então registre todos os manipuladores de eventos foundationInner
(que não está sendo movido em relação à sua vista pai).
Se, naturalmente, não há desapego e refixação acontecendo na Fundação, então é algo completamente diferente. Mais sobre esta questão Aqui.
1 para resposta № 2
Template.foundation.rendered = function() {
// your code to show the modal
$("#userprofile").foundation("reveal","open");
}