使用init时,Ember文本字段事件无法正常工作

时间:2013-08-13 08:38:17

标签: javascript ember.js

我正在尝试初始化我的ember文本字段视图以使用查询字符串预填充它。但每当我在我的视图中添加一个init函数时,所有其他已定义的事件都会停止触发。

如何在使用初始化时让我的事件继续工作?

App.SearchBarView = Ember.TextField.extend({
    throttle_instance: _.debounce(function(){
        var value = this.get('value');
        this.update();
    }, 1000),
    /**
    * Initialize the textbox with a set value
    */
    init: function(){
        var query = "testquery";
        if(query && query.length > 0){
            this.set('value', query[0]);
            this.get('controller').set('query', query[0]);
            this.update();
        }
    },
    insertNewline: function() {
        this.update();
    },
    /**
    * Handle the keyup event and throttle the amount of requests
    * (send after 1 second of not typing)
    */
    keyUp: function(evt) {
        this.get('controller').set('query', this.get('value'));
        this.throttle_instance();
    },
    /**
    * Update the pages results with the query
    */
    update: function(){
        var value = this.get('value');
        this.get('controller').filterByQuery(value);
    }

});

1 个答案:

答案 0 :(得分:4)

您需要在this._super()方法中调用init来维护视图的默认行为:

...
init: function() {
  this._super();
}
...

希望它有所帮助。