0

バックボーン ビューでのソケットの使用について質問があります。

ソケット リスナー内からモデルにアクセスするにはどうすればよいですか? 私は何かをしたい...

window.SocketView = Backbone.View.extend({

initialize:function () {

     _.bindAll(this, 'render', 'updateModelFromServer'); 

    this.render();

},

render:function () {
    $(this.el).html(this.template());
    return this;
},

events: {

    "click #chageGlobalState"       : "updateModelFromServer"
},

updateModelFromServer: function() {

   socket.emit("globalState", 1);

   socket.on("updateState", function(data) {

        this.model.set("state", data);
    });
});

});

これにより、socket.io 名前空間エラーが発生します。ソケットとモデル間でデータを共有する最良の方法は何ですか?

私が見逃している単純な構文の問題はありますか?

それとももっと深く掘り下げて使用する必要がありますか...

イベントアグリゲーター?Backbone.ioBind? マリオネット?dノード?

このプロジェクトは、マルチメディア チャットのような Web アプリケーションです。

前もって感謝します!

4

1 に答える 1

1

thisソケット コールバック内で間違ったものを使用しようとしているようです。

これを行う代わりに:

socket.on("updateState", function(data) {
    this.model.set("state", data);
});

これを試してください:

socket.on("updateState", function(data) {
    this.model.set("state", data);
}.bind(this));
于 2013-01-10T20:46:45.253 に答える