Мій код
{{#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>
Я відкриваю модаль за допомогою JS
$("#userprofile").foundation("reveal","open");
Мої події є
Template.foundation.events({
"click .btnConfirm":function(evt){
console.log("confirm");
$("#curator_name").val("");
$("#confirmationText").html("");
},
"click .btnCancel":function(){
console.log("close");
},
});
Вони не стріляють, ніхто не стикався з тим же питанням.
Я намагався ввести весь модальний код у батьківський шаблон і прив’язувати події. Це теж не працює
Відповіді:
11 за відповідь № 1Цілком можливо, що, як і Semantic-UI тадеякі інші рамки, основи модалей видаляються з DOM і програмно додаються в іншому місці (наприклад, в кінці тіла). Якщо це так, то обробники подій, зареєстровані у вкладеному шаблоні, більше не зможуть їх знайти.
Рішення полягає у визначенні шаблону в межах ваш модальний і приєднайте події до цього. Щось на зразок:
<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>
Потім зареєструйте всі обробники подій на foundationInner
(що не рухається відносно виду батьків)
Якщо, звичайно, у Фонді немає жодного відсторонення та повторного приєднання, то це зовсім інше. Детальніше з цього питання тут.
1 для відповіді № 2
Template.foundation.rendered = function() {
// your code to show the modal
$("#userprofile").foundation("reveal","open");
}