2

私はバックボーンを学んでおり、「オン」機能を取得しているライブラリを見つけようとしています。jQueryだと思っていたのですが、もしそうならAPIを理解していません。誰かが「オン」機能を説明するか、私をいくつかのドキュメントにリンクしてください。最初のパラメーターはイベントです。2 番目のパラメーターは、呼び出される関数です。最後の 'this' は何を参照しており (呼び出しクラスを想定しています)、なぜそれが必要なのですか? これは Addy Osmani からの私のコードです。これは AppView です。

    initialize : function() {
        this.input = this.$('#new-todo');
        this.allCheckbox = this.$('#toggle-all')[0];
        this.$footer = this.$('#footer');
        this.$main = this.$('#main');

        window.app.Todos.on('add', this.addOne, this);
        window.app.Todos.on('reset', this.addAll, this);
        window.app.Todos.on('change:completed', this.filterOne, this);
        window.app.Todos.on("filter", this.filterAll, this);

        window.app.Todos.on('all', this.render, this);

        app.Todos.fetch();
    },
4

2 に答える 2

1

この場合の on メソッドは、Backbone の Event モジュールから来ています。イベント名、関数、コンテキストの 3 つのパラメーターを受け取ります。コンテキストは、関数内の「this」の値を決定します。

Todos.on("filter", this.filterAll, this);関数 filterAll 内で「this」の値がビューインスタンスであることを尋ねるだけです

于 2012-11-16T11:12:23.670 に答える
0
object.on(event, callback, [context])

backbone.js docによると、最後の[context]パラメータは、コールバック関数に渡されるオプションのコンテキストです。

Addy の ToDo の例では、これはクリックされたtodoビューへの参照を渡しています。

// Add a single todo item to the list by creating a view for it, and
// appending its element to the `<ul>`.
addOne: function( todo ) {
    var view = new app.TodoView({ model: todo });
    $('#todo-list').append( view.render().el );
},
于 2012-11-16T11:16:22.397 に答える