1

最近サイトにコメントした人spine.jsのリストを取得しようとしているアプリケーションがあります。users私のサーバー パスは/users/recently_commented.

クラスメソッドを作成してみました:

Spine.js 動画モデル

class App.User extends Spine.Model
  @configure 'User', 'name'
  @extend Spine.Model.Ajax

  @recentlyCommented: ->
    $.get @url("recently_commented")

User.recentlyCommentedビューに渡すと、 が返されますundefined

それらのレコードを取得するにはどうすればよいですか?

4

1 に答える 1

1

の呼び出し方に問題があると思います$.get

まず第一に、$.get非同期であるため、 User インスタンスのリストではなくUser.recentlyCommentedを返します。jqXHR

次に、データが到着したときにデータ$.getを処理するために、何らかのコールバック関数を使用して呼び出す必要があります。recently_commented

$.get @url('recently_commented'), (data) ->
    # Now convert 'data' to User model instances,
    # if this function cares about its context then
    # you'll probably want to use => to define it.

ビューは、何らかの方法で「新しいモデル」によって作成されたイベントをリッスンする必要もあります。これは、Users が返された後$.get(したがって) しばらく時間が経過するまで存在しないためです。recentlyCommented

申し訳ありませんが、私は Spine を知らないので、慣用的なアプローチがここにあるのかわかりません。

于 2012-05-13T17:09:22.483 に答える