Возвращает объект из пакета typeahead в meteorjs

#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. Мне неясно, как включить объект участника в форму ввода.