私はbackbonejsビューのレンダリングメソッドでgetリクエストを作成しようとしています。 ajax呼び出しが成功したら、テンプレートをレンダリングしたいと思います。もともとビューに渡されたモデルにアクセスしても問題はあります。私はajaxリクエストからのデータにしかアクセスできません。 ajaxコールの成功のために私の@userモデルを私に利用させるにはどうすればいいですか?私のビュー内でget要求に問題があるバックボーン
FooAdmin.Views.Users ||= {}
class FooAdmin.Views.Users.ShowView extends Backbone.View
initialize: ->
@user = @model
template: HandlebarsTemplates["users/show"]
render: ->
@self = @$el.html
$.ajax FooAdmin.FOO_API_URL + "/api/v1/orders?user_id=#{@user.attributes.id}",
type: 'GET'
dataType: 'json'
error: (jqXHR, textStatus, errorThrown) ->
alert(textStatus)
success: (data, textStatus, jqXHR) ->
debugger;
@self.html(@template(user: @user, order: data))
おそらく成功呼び出しを親オブジェクトにバインドする必要があります。バックボーンをバイパスし、jQueryを使用してもコンテキストは保持されません。私は通常このタイプのものに_.bindを使用します。 – stakolee
'debugger'が置かれている親をチェックしているときのように見えます。親はウィンドウです。 – Jay
'@self = @ $ el.html'は意味がありません。' @ self'に関数参照が残っていて、 '@'は必ず' success'折り返し電話。コールバックで 'el = @ $ el'、そして' el.html(...) 'のようなものをもっと必要としませんか?また、 'FooAdmin.FOO_API_URL +"/api/v1/orders?user_id =#{@ user.attributes.id} "'#{FooAdmin.FOO_API_URL}/api/v1/orders?user_id =#{ @ user.attributes.id} "'これは少し一貫しています。 –