текстовое поле, фильтрующее список с использованием данных ember + ember

Я новичок в использовании ember, но уже знаком с ним, в основном следуя некоторым учебникам здесь и там и читая api docs. Но учебники нене углубляться в более сложные темы.

Вот подробности: я уже реализовал веб-страницу, которая показывает список элементов. Ниже приведены соответствующие фрагменты кода из разных частей приложения.

// the data model, the view and the controller
App.Item = DS.Model.extend({
    name: DS.attr('string')
});
App.ItemsController = Ember.ArrayController.extend();
App.ItemsView = Ember.View.extend({ templateName: 'items' })

// in the router's corresponding route
connectOutlets: function(router) {
    router.get('applicationController').connectOutlet('items', App.Item.find())
}

// in the handlebars template

  {{#each content}}
    {{name}}
  {{/each}}

Данные для этого списка загружаются удаленно через ember-data (обратите внимание наApp.Item.find() позвонить в маршрутconnectOutlet метод выше), и шаблон руля отображает его и динамически обновляет список по мере изменения данных. До этого это основной уголек.

Теперь я хочу, чтобы текстовое поле было вверху списка, и когда пользователь вводит текст в этом текстовом поле, список должен обновляться путем фильтрации и отображения только элементов с именем, совпадающим с тем, что печатает пользователь. Фактическое определение того, что такое совпадающее имя, не имеет отношения к этому вопросу. Это могут быть те имена, которые содержат напечатанную строку, или которые начинаются с нее.

Я знаю, что следующим моим шагом будет включение представления текстового поля в верхней части списка в шаблоне руля:


    {{view Ember.TextField}}


  {{#each content}}
    {{name}}
  {{/each}}

Итак, мои вопросы на данный момент следующие:

Как мне обратиться к этому текстовому полю в коде javascript, чтобы я мог прикрепить к нему прослушиватель, чтобы определить, когда он меняется?И что еще более важно, что мне нужно сделать внутри этого прослушивателя событий, чтобы список был отфильтрован?Я хотел бы знать, как добиться этого, фильтруя данные, загруженные локально, но также и как это сделать, загружая данные фильтрации удаленно каждый раз, когда пользователь вводит.

Мне действительно нужно реализовать что-то более сложное, чем это, но знание того, как это сделать, поможет.

Ответы на вопрос(1)

Ваш ответ на вопрос