为搜索建议下拉菜单设置观察者

时间:2013-11-14 13:32:38

标签: ember.js

我有一个input搜索字段和一个Twitter bootstrap下拉列表。

当用户在input字段(Ember input帮助器中输入值为customerSearchQuery)中键入内容时,控制器中会有一个计算属性,该属性将返回一个将填充的替换数组。落下。我在视图中也有一个处理下拉列表的方法,该方法将在数组中的第一个元素上设置一个active类,该类稍后将用于在input字段时使用键盘导航下拉列表很专注。视图层次结构如下所示,它们都使用相同的控制器:

Care.NavbarView = Ember.View.extend({
    controller: Care.NavbarController.create(),
    templateName: 'navbar',
    CustomerSearchView: Ember.View.extend({
        selectedSearchMatch: 'ean',
        searchStateLoading: false,
        searchStateSuccess: false,
        searchStateFail: false,
        SearchMatchesView: Ember.View.extend({
            tagName: 'li',
            classNameBindings: ['isActive:active'],
            setSelectedSearchMatchToFirst: function() {
                console.log(this.get('controller').get('customerSearchQuery'))
            }.observes('controller.customerSearchQuery'),
            isActive: function() {
                return this.get('content.value') === this.get('parentView.selectedSearchMatch')
            }.property('content', 'parentView.selectedSearchMatch')
        })
    })
})

问题是观察者(setSelectedSearchMatchToFirst)并不总是触发,只有当计算属性执行时(使用this.get('customerSearchQuery')然后根据该值返回结果)。为什么会这样,每次更改customerSearchQuery输入字段时如何触发?

0 个答案:

没有答案