Я сейчас использую пример leaderboard, и я его закончил, но я не полностью удовлетворен своей реализацией функции add.Используя это в обратном вызове для не-сбора
Начнем с того, мы имеем
Template.player.events({
'click': function() {
Session.set("selected_player", this._id);
}
});
Я нахожу это немного запутанным, как this
связан с коллекцией игрока, но я думаю, что это связано с <template
части. Я также могу сделать
Template.leaderboard.events({
'click input.delete': function() {
Players.remove(this._id);
}
... который удаляет игрока с соответствующей записью кнопки.
Теперь для фактического вопроса части: Я добавил это в нижней части лидеров шаблона:
<div>
Add player: (Name <input required name="name" id="name">)
(Score <input required name="score" id="score">)
<input class="add" type="button" value="Add">
</div>
Это прекрасно работает, и я Template.leaderboard.events['click input.delete']
работает нормально, но для того, чтобы получить значения я использую:
'click input.add': function() {
var name = document.getElementById('name').value,
score = document.getElementById('score').value;
было бы много смысла для меня, если бы я был в состоянии использовать this
в некотором роде, или использовать это событие, чтобы каким-то образом получить значения, что-корреспондент на входах. Это не только имеет смысл для меня с точки зрения дизайна, но также будет охватывать случай одновременного отображения более одного из этих видов.
Итак, можно ли получить элементы, находящиеся рядом с целевым элементом, в контексте события?
Что касается вашей путаницы с событием ** click **: внутри обработчика событий шаблона _this_ ссылается на контекст текущего экземпляра шаблона. Если я правильно помню пример _leaderboard_, контекст, заданный каждому экземпляру Template.player, является документом из коллекции Players. ** this._id ** поэтому дает вам поле MongoDB _id, которое было автоматически сгенерировано для этого конкретного документа Player – travellingprog
@travellingprog Я думаю, что вы правы, но в событии 'click input.add' выше, нет игроков контекст коллекции; он находится вне части «игрока» –
Да, поэтому, если вы находитесь в другом шаблоне, то _this_ предоставит вам доступ к контексту этого шаблона. – travellingprog