#mongodb #meteor #typeahead.js
#mongodb #метеор #typeahead.js
Вопрос:
Я добавил atmospherejs.com/package/typeahead к проекту meteor, и он работает нормально. Он возвращает строку, но могу ли я изменить typeahead, чтобы вернуть объект, и чтобы шаблон отображал объект соответствующим образом? Мне нужен _id в дополнение к имени участника, которого я добавляю в коллекцию mongodb.
js-файл:
Template.raceAddParticipant.acparticipants = function () {
return Participants.find().fetch().map(function (post) { return post.name; });
};
html-файл:
<input class="form-control typeahead" autocomplete="off" spellcheck="off" data-source="acparticipants" name="name" type="text" value="" placeholder="Participant" />
с уважением
Клаус
Ответ №1:
Typeahead не предназначен для Meteor, и вам нужно будет много спорить, чтобы работать со строками, которые он возвращает.
Одним из решений является использование чего-то вроде https://github.com/mizzao/meteor-autocomplete , который работает с коллекциями Meteor вместо массивов, является реактивным и поддерживает рендеринг с использованием шаблонов Meteor с соответствующими контекстами данных (т.Е. _id
и Всеми другими полями). Это в основном похоже на typeahead, но разработано вокруг Meteor.
Комментарии:
1. Я добавил автозаполнение, и оно работает нормально. Как я буду включать участника._id в html-файл? Прямо сейчас у меня есть имя в inputAutocomplete.
2. Шаблон, который отображает каждый элемент, показывает дополнительную информацию, такую как club, _id и т. Д. Но как мне получить _id в {{> inputAutocomplete}}, чтобы я мог сохранить его в новой коллекции? Это работает. {{> Параметры ввода = параметры ввода идентификатор = «имя» имя =»имя» заполнитель =»Участник» заполнитель =»Имя» }}
3. Я устанавливаю переменную сеанса с помощью обратного вызова: function(), но не уверен, есть ли лучший подход. Имя участника, клуб, _id и т. Д. Можно увидеть обработчиком события шаблона через Session.get(), Где я сохраняю участника, используя «форму отправки»:.
4. @kometen Я не совсем понимаю ваш вопрос.
5. Простите, это несколько неясно. github.com/kometen/karusselrenn/blob/master/client/views/races /… , строка 5 имеет inputAutocomplete для имени. Шаблон acParticipants отображает доступные параметры. Как включить year, club, _id в inputAutocomplete? В github.com/kometen/karusselrenn/blob/master/client/views/races/… Я устанавливаю club и _id в качестве переменных сеанса в строке 45-46. Мне неясно, как включить объект участника в форму ввода.