2012-02-18 5 views
0

私は現在、次のJavascriptを持っています。返されたHTMLが何かを返すかどうかをコメントエリアで確認する必要はありませんか?jQuery GETがHTMLを返したかどうかを確認する方法はありますか?

$('#load-more').click(function() { 
    $.get('/load/friend/2'/, function(data) { 

    // If there is HTML returned, then $('#load-friend').append(data) 
    // Else $('#load-global').append(data) 

    }); 
}); 

GETはrender_to_response(template, context, RequestContext(request))でレンダリングしたジャンゴでHttpResponseオブジェクトを返す/load/friend/2を問い合わせます。

Djangoのテンプレートは、次のようになります。

{% for review in reviews %} 
    // Code 
{% endfor %} 

だから、とき$に.get取り出し/ロード/友人/ 2とレビュー= []、私はそれが空のHTMLドキュメントを返すべきであると考えていますか? Djangoのコントローラで

+1

もしそれが_not_htmlならば、それは何でしょうか(あなたがそれを一つの要素か別の要素に付加したいと思うようなことがあれば)? – nnnnnn

+0

明確化。空白のHTMLが返されるはずですか? – ArKitect

+1

空文字列のように "空白"を返す場合は、 'if(data ===")... 'または' if(data.replace(/ \ s/g、 "") === ""))...空白があるかもしれませんが、空白に戻っている場合、なぜ 'else load'を' '#load-global''に追加したいのですか? – nnnnnn

答えて

1

reviewsが空の場合は、代わりに、ビューテンプレートのHTTPステータスコードを返す:JavaScriptで

if not reviews: 
    # 204 = "no content" 
    return HttpResponse(status=204) 

、コールバックを定義するためにjQueryの一般的なAJAX functionを使用するには:

$('#load-more').click(function() { 
    $.ajax({ 
     url: '/load/friend/2', 
     type: 'GET', 
     dataType: 'HTML', 
     success: function (data, textStatus, jqXHR) { 
      $('#load-friend').append(data); 
     }, 
     statusCode: { 
      204: function() { 
       $('#load-global').append('<p>No reviews found.</p>'); 
      } 
     } 
    }); 
}); 
関連する問題