2012-03-08 14 views
5

emberjs(およびember-data)を使用して現在のユーザー情報を取得するための洗練された戦略を探しています。現在のユーザーを取得するための戦略

現在、私は次の操作を行います。

私のAPIは、現在のユーザーと/users/meに応答します。
私のアダプタで、検索されたオブジェクトIDが私が望んでいないものである場合、id(データベース内のユーザのID)であるreal_idを追加し、私が実際に返すIDを置き換えます期待している。

私のアダプタは、ユーザーのIDとして「私」を持っているが、サーバーが1を返すときに、私は次のJSONを取得:

{"real_id": 1, "id": "me"} 

これは動作します。しかし私は大ファンではなく、アダプターのデフォルトの内容を変更するのをできるだけ避けたいと思っています。

これにはどのような戦略を使用していますか?あなたは何をお勧めします ?

答えて

9

コントローラApp.currentUserControllerを使用します。

App.CurrentUserController = Ember.ObjectController.extend({ 
    content: null, 

    retrieveCurrentUser: function() { 
     var controller = this; 
     Ember.$.getJSON('/users/me', function(data) { 
      App.store.load(App.User, data); 
      var currentUser = App.store.find(data.id); 
      controller.set('content', currentUser); 
     }); 
    } 
}); 
+0

私が試した、それが、私は、 'キャッチされない例外TypeErrorを得る:、undefined' – X2theZ

+0

ザビエルの「ロード」メソッドを呼び出して、あなたの店を定義しどこに行く、とApp.store = App.Storeを追加することはできません。 create() – Vojto

-5
get = Em.get 
set = Em.set 
App.AccountController = Em.Controller.extend 

     contentBinding: '_content.firstObject' 

     init: -> 
      set @, "_content", App.User.find() 
+2

これは最初に返されたユーザーが現在のものであると仮定しています。 –

+0

あなたはこれをサーバー上で制限することができます –

+0

*なぜ*これが役立つか説明できますか? – ChrisF

関連する問題