2012-03-08 39 views
5

Tôi đang tìm một chiến lược sang trọng để truy xuất thông tin người dùng hiện tại bằng các emberj (và dữ liệu ember).Chiến lược để truy xuất người dùng hiện tại

Hiện nay, tôi làm như sau:

API của tôi đáp ứng /users/me với người sử dụng hiện nay.
Trong bộ điều hợp của tôi, khi id đối tượng đã truy xuất không phải là id tôi hy vọng, tôi thêm real_id là id (id của người dùng trong cơ sở dữ liệu) và tôi thay thế id được trả về thực theo mong đợi.

Vì vậy, khi bộ chuyển đổi của tôi có "tôi" như id của người dùng, nhưng máy chủ trả về 1, tôi nhận được json sau:

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

này hoạt động. Nhưng tôi không phải là một fan hâm mộ lớn, và tôi muốn tránh càng nhiều càng tốt để thay đổi nội dung mặc định của bộ điều hợp.

Bạn có sử dụng bất kỳ chiến lược nào cho điều này không? Bạn muốn giới thiệu gì?

Trả lời

9

Tôi sẽ sử dụng bộ điều khiển App.currentUserController cho việc này.

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

Tôi cố gắng đó, nhưng tôi nhận được 'lỗi chưa gặp: Không thể gọi phương thức 'tải' của undefined' – X2theZ

+0

Xavier, đi đến bất cứ nơi nào bạn xác định cửa hàng của bạn, và thêm 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

Điều này giả định người dùng được trả lại đầu tiên là người dùng hiện tại, có thể không phải là ý tưởng tốt nhất cho api. –

+0

bạn có thể giới hạn số này trên máy chủ –

+0

Bạn có thể giải thích * tại sao * điều này có ích không. – ChrisF

Các vấn đề liên quan