簡體   English   中英

Backbone.js 無法捕捉觸發事件

[英]Backbone.js can't catch trigger event

嘿,所以我試圖捕捉一個觸發事件,但看起來我錯過了一些東西:

所以我有主干視圖和兩個平面舊 javascript 對象,一個是“控制器”,一個是我的“應用程序”對象,它看起來像這樣:

// View
SearchView = Backbone.View.extend({
    ...

    events: {
        'keyup .input' : 'search'
    },

    search: function (e) {

        var keyCode = e.keyCode || e.which;

        this.trigger("search:auto", keyCode);
    }
});

// Controller
SearchController = function (options) {
    ...

    this.view = options.view;

    this.view.on("search:auto", this.search, this);

    this.search = function () {
        console.log('great');
    };
};

// App 
App = function() {
    ...

    this.views = {
        searchView : new SearchView()
    };

    new SearchController({
        view: this.views.searchView
    });

    this.start = function() {
        ...
    };
}

new App().start();

問題是,我想捕獲由控制器中的視圖觸發的事件,但不知何故它不起作用,我知道 Backbone,也許我錯過了一些東西。

謝謝你的幫助。

好的,最后我想通了,問題是順序,在我聲明我的函數之前注冊了事件,這是正確的順序:

// Controller
SearchController = function (options) {
    ...

    this.view = options.view;

    this.search = function () {
        console.log('great');
    };
    this.view.on("search:auto", this.search, this);
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM