0

問題: RailsのリソースフルモデルをBackbone.jsでミラーリングしています。現在のユーザーIDをBackbone Workshop.Models.Userモデルに取得しようとしているので、RailsユーザーのRESTfulリソースを介してユーザーをデータベースに保存できます。CurrentuserモデルからIDを取得できません。?

バックボーンで現在のユーザーモデルのインスタンスのIDを取得しようとすると、戻り値が未定義になります。サーバーログでフェッチが成功したことがわかり、ローカルインスタンスをログに出力するとオブジェクトを検査できます。コンソールを使用して同じコードを実行し、IDを正常に取得することもできます。実行時のみです。

モデルを別の方法で構成するか、ビュー内の何かをバインドすることになっているのではないかと思います。ヘルプ?

ここで私の要点を参照してください

モデル:

# singleton model gets current user

class Workshop.Models.Currentuser extends Backbone.Model
idAttribute: '_id'
urlRoot: -> '/user/currentuser/'

# classic Rails RESTful resource

class Workshop.Models.User extends Backbone.Model
urlRoot: '/users/show'
4

1 に答える 1

5

あなたの要点では、あなたは次のコードを持っています

current_user = new Workshop.Models.Currentuser
current_user.fetch()
console.log(current_user.id)

ただし、フェッチは非同期でありid、ajax呼び出しが完了するまでは入力されません。

これを試してみてください(私のルビースキルはゼロであり、私のコーヒースクリプトもあまり良くないので、構文の保証はありませんので、お詫びします)

current_user.fetch({ success: -> console.log(current_user.id) });

于 2012-12-05T21:38:51.963 に答える