使用自动完成功能创建TextField

时间:2013-04-21 23:37:46

标签: ember.js

我必须在Ember中使用 autocomplete 创建 TextField ,以便在每次按键时根据匹配从数据库中获取数据。

他们的任何内置小部件都在Ember中吗?

4 个答案:

答案 0 :(得分:8)

您可以使用Ember.Textfield事件来执行此操作。 (Coffeescript和Jade)

搜索视图

App.SearchView = Ember.View.extend

    templateName: 'search'

    searchTerm: null

    searchTextField: Ember.TextField.extend

      insertNewline: ->
        # if the user hits the enter key, you can do something different or call the same function
        @get('controller').search(@get('searchTerm'))

      keyUp: (e) ->
        # validate the item on every keypress
        if (e.currentTarget.value.length > 0)
          @get('controller').search(@get('searchTerm'))

搜索模板

script(type='text/x-handlebars', data-template-name='search')

{{view view.searchTextField valueBinding="view.searchTerm" placeholder="search"}}

<button {{action "search"}}>search</button>

搜索控制器

App.SearchController = Ember.ObjectController.extend

  search: (searchTerm) ->
    # do your search

**添加了缺失的括号

答案 1 :(得分:3)

EmberCasts在how to build an auto complete widget上有一个很好的视频。

I asked them about the millisecond delay关于过滤,我被告知他们将在下一集中介绍它。

答案 2 :(得分:2)

Ember.js中没有内置组件,但根据经验,这样的组件很容易自己编写。关于EmberCamp Trek Glowacki说他希望不再需要任何小部件库。

你也可以使用Twitter Bootstrap中的Typeahead或jQuery UI中的AutoComplete,它们可以一起工作。

答案 3 :(得分:0)

The github project ember-typeahead也在这方面有了一个良好的开端。