2012-10-24 14 views
5

Próbuję wczytać model użytkownika z danymi ember z trasy, niż akceptować nazwę użytkownika lub identyfikator.Używanie wtyczki zamiast identyfikatora

Zmodyfikowałem metodę wyszukiwania RESTAdapter w celu przekazania id z odpowiedzi JSON na didFindRecord, ale nic nie zostaje przekazane do mojego widoku. Wygląda na to, że Ember nadal próbuje użyć nazwy użytkownika jako identyfikatora modelu.

Mój router wygląda następująco:

App.Router = Em.Router.extend({ 
    location: 'history' 
, root: Em.Route.extend({ 
    user: Em.Route.extend({ 
     route: '/users/:slug' 
    , connectOutlets: function(router, context) { 
     router.get('applicationController').connectOutlet('user', context) 
     } 

    , serialize: function(router, context) { 
     return { slug: context.get('username') || context.get('id') } 
     } 

    , deserialize: function(router, params) { 
     return App.User.find(params.slug) 
     } 
    }) 
    }) 
}) 

I moja metoda find wygląda tak:

var CustomAdapter = DS.RESTAdapter.extend({ 
    find: function(store, type, id) { 
    var root = this.rootForType(type) 

    this.ajax(this.buildURL(root, id), 'GET', { 
     success: function(json) { 
     this.didFindRecord(store, type, json, json[root].id) 
     } 
    }) 
    } 
}) 

App.store = DS.Store.create({ 
    revision: 6 
, adapter: CustomAdapter.create({ namespace: 'api' }) 
}) 
+0

że ajax żądanie faktycznie zwolniony ? (czy otrzymujesz dane z powrotem?) może to być problem z propagacją zmian –

+0

Spróbuj tego: Ember.run (this, function() { this.didFindRecord (sklep, typ, json, json [root] .id); }); –

Odpowiedz

Powiązane problemy