У меня есть метеорное приложение, которое использует семантический пользовательский интерфейс. Для этого я использую пакет semantic:ui-css.
У меня есть шаблон под названием проект, в котором я хочу показать модальное окно. Там я создал второй шаблон, который является модальным следующим образом:
<template name="xform">
<div id="modal" class="ui modal">
<i class="close icon"></i>
<div class="header">New Project</div>
<div class="content">
<div class="ui form" id="newProject">
<div class="one fields">
<div class="field">
<legend>Project Details</legend>
<label>Name</label>
<input id="name" name="name" type="text" placeholder="Project name">
</div>
<input type="submit" class="button small createProject" style="color:white;position:relative;float:right;padding: 0.875rem 1.75rem 0.9375rem 1.75rem;font-size: 0.8125rem;" value="Create">
</div>
</div>
</div>
<div class="actions">
<div class="ui button">
Cancel
</div>
<div class="ui button">
Okay
</div>
</div>
</div>
</template>
Затем я добавил событие к такой кнопке, чтобы показать модальное окно:
Template.projects.events({
'click .newProject': function(event, template){
template.$('.ui.modal').modal({
onDeny : function(){
return false;
}}).modal('show');
}
});
Если я нажму кнопку в первый раз, модальное окно откроется так, как хотелось бы. Я вижу, что модальное окно теперь находится не внутри html моего шаблона, а в конце моего тела. Я могу закрыть модальное окно с помощью кнопки закрытия, но когда я пытаюсь открыть его снова, оно больше не открывается. Модальный div все еще находится внизу моего тела.
Я пробовал несколько способов обойти эту проблему, но ни один из них не сработал.
Вот мой полный код: http://i.imgur.com/r9JNrlr
template.$('.ui.modal')...
, вы только «ищете».ui.modal
внутри шаблона - в данном случае шаблон «проекты». Самым простым, хотя и не обязательно правильным способом, было бы просто использовать глобальный объект jQuery$('.ui.modal')
. Под не обязательно правильным я подразумеваю, что вы, вероятно, должны ссылаться на него с уникальным атрибутом id, чтобы избежать конфликтов между несколькими модальными окнами. - person Michael Mason   schedule 23.06.2015