サーバー要求を成功させるバックボーン モデルがあります。バックボーンのドキュメントで説明されているように、コールバックはバックボーンのトリガー メソッドを使用して、関連付けられたビューでイベントをトリガーし、トリガー メソッドの 2 番目のパラメーターとしてサーバー要求からの解析された json 応答を渡します。ビューでは、イベントは render メソッドをトリガーしますが、応答オブジェクトはビューで null です。このエラーをスローしています
Uncaught TypeError: Cannot read property 'word' of null
誰かが私が間違っているかもしれないことを見ることができますか?
モデルからのサーバー要求
new: function() {
var _this = this;
console.log("new function of model");
$.ajax({
url: "/gamestart",
type: "GET",
success: function(response) {
console.log(response);
var json = $.parseJSON(response);
_this.set({lost: false});
_this.set({win: false});
_this.trigger("gameStartedEvent", json);
}
})
},
render メソッドをトリガーしてレスポンスをレンダリングする、ビューの初期化メソッド内のイベント
this.model.on("gameStartedEvent", this.render, this);
レスポンスが null の render メソッド
render: function(response) {
$("#hint").show();
console.log(response);
var html = this.template({characters: response.word});
this.el.hide();
this.el.html(html).show();
},
重要な場合は、ビューがモデルでインスタンス化されていることに注意してください
var word_view = new WordView({model: game})
アップデート
実はここでエラーが発生しています。応答は正常に返されていますが、正しく解析していません。コンソールを確認すると、変数 json が null です。私が間違っていることがわかりますか?
var json = $.parseJSON(response);
console.log(json)
応答
Object {word: Array[6]}
word: Array[6]
__proto__: Object