Я хочу использовать Typeahead.js в своем приложении Ember, но не знаю, как использовать его мою модель RESTAdapter с ember-данными, которую я уже настроил для запроса моей базы данных через наш внутренний API.
Я бы поставил запрос в "локальный" элемент, чтобы сделать это, возможно, как ниже (coffeescript)?
$('.typeahead.userGrp').typeahead(
[
name: "Users and Groups"
valueKey: 'namevalue'
minLength: 1
limit: 30
template: hTemplate
local: ->
@get('store').find('userGrp')
engine: Handlebars
]
)
Или я должен придерживаться старомодного вызова JQuery AJAX, как описано здесь? Что-то в этом коде не сидит прямо со мной, но я бы хотел как можно больше использовать встроенные элементы ember/ember-data.
Кроме того, как подумала сторона по этому вопросу, кажется, что, если я смогу подключить свой адаптер для работы с ember-data, я бы обработал динамические URL-адреса в функции RESENTdapter "buildURL", но если нет, я бы сделал это в 'typeahead.remote.replace'. Это имело бы смысл?
Любые мысли по этому поводу?
Bryan
Я бы, вероятно, использовал крючок модели или в контроллере захватил необходимые модели, а затем подключил их во время didInsertElement на представлении (или используя планировщик после того, как ember отобразил событие Ember transition & rendering complete).
Вот уродливый пример с прикрученным css, но общая идея с ним зацепиться обратно в ember после выбора.
local: @get('controller').allPresetReports()
, typeahead не ждет разрешения обещания, но возвращает ошибку 'datum is undefined'. Эта функция контроллера находит данные из интересующей меня модели (FIXTURES сейчас, но скоро REST) и правильно форматирует их для typeahead. Посмотрим, скажут ли ребята из typeahead.