#javascript #twitter-bootstrap #meteor
#javascript #twitter-bootstrap #meteor
Вопрос:
Я пытаюсь передать идентификатор из href в модальный, который открывается при нажатии на ссылку.
У меня модальный вывод в порядке, но вместо идентификатора в ссылке я получаю идентификатор родительской страницы в этом.
Мой код для ссылки
<table class="table table-striped table-condensed">
<tbody
<tr>
<th>Posted</th>
<th>ID</th>
</tr>
{{#each quotes}}
<tr>
<td>{{submittedText}}</td>
<td><a href="#showQuote" class="showQuote" data-toggle="modal">{{_id}}</a></td>
</tr>
{{/each}}
</tbody>
Правильный идентификатор цитаты указан в таблице, но я не могу понять, как заставить этот идентификатор цитаты отображаться в открывающемся результирующем модале.
Я попытался перехватить событие click в вспомогательном устройстве следующим образом
'click #showQuote' : function(t,e) {
console.log(this);
console.log(t);
console.log(e);
debugger;
}
Но это родительский идентификатор, а не цитируемый (и, похоже, это срабатывает только тогда, когда я все равно закрываю диалог).
Как мне передать это, пожалуйста?
Ответ №1:
Переменная сеанса — один из способов сделать это, но если вы используете пакет peppelg:bootstrap-3-modal, вы можете передать родительский контекст в функцию show.
javascript
Template.template_with_modal_link.events({
'click . showQuote': function() {
Modal.show('<ModalName>', this); // parent context this
} });
HTML
<template name="<ModalName>">
<!-- modal format -->
</template>
Ответ №2:
Если вы уже внедрили код для отображения модального режима, вы могли бы использовать переменную сеанса
<template name="modalstuff">
...
{{#with quoteinfo}}
MODAL HERE
...
{{/with}}
</template>
Template.modalstuff.helpers({
quoteinfo: function() {
return Session.get("quotedata");
}
});
Затем в вашем шаблоне, где у вас есть ссылка
Template.template_with_modal_link.events({
'click . showQuote': function() {
Session.set('quotedata', this);
}
});
this
является ли контекст данных вокруг ссылки showQuote, которая затем будет связана с переменной сеанса с модальным
Комментарии:
1. Если я изменю свою ссылку, присвоив ей id = «showQuote» и перехватываю событие по мере показа (на основе идентификатора), я получаю идентификатор цитаты в обработчике, но у меня не появляется модальный параметр (я получаю фон), потому что приложение пытается показать URL с #showQuote в конце, который не существует. Если я удалю идентификатор и поймаю #showQuote, я получу базовую страницу при выходе из модального режима, ничего при входе …??
2. @PeterNUnn извините, у меня была опечатка в коде при копировании вставки, предполагалось, что он использует класс
click .showQuote
(у меня был дополнительный пробел после .). Исправлено.3. Спасибо ok @Akshat, я понял это, но диалоговое окно по-прежнему не открывается. Когда я ввожу идентификатор, он добавляется к URL для ссылки, а модальный не отображается.
4. @PeterNUnn хорошо, возможно, что-то идет не так с привязкой, вы можете вручную показать это с помощью
$('#showQuote').modal('show');
в обработчике кликов. Будьте осторожны сid=
, вы можете использовать это только один раз, если вы делаете это со своимa
тегом, это будет означать, что все они имеют одинаковыйid
5. Понял .. спасибо, нужно добавить дополнительный класс к ссылке и превратить их в кнопки, чтобы заставить их работать должным образом (не уверен, почему кнопки, но ссылки не работают).