2013-03-10 26 views
0

我不必重寫的路線做模特這樣一些自定義負載模型:ember.js側載不工作

App.EventsIndexRoute = Ember.Route.extend 
    model: (params) -> 
    origin = LJ.origin().join(',') 
    location = [LJ.stripQuery(params.loc2), params.loc1].join(',') 
    h = $.param(origin: origin, location: location) 
    $.getJSON "#{LJ.CONFIG.api.url}/events?#{h}" 

的JSON返回包括側載機型,但他們沒有被加載餘燼。我猜我需要做些事情來讓他們加載,但我不知道是什麼。我會很感激這方面的幫助。

Here's an example返回的JSON。

更新

這裏的模型定義:

App.Event = DS.Model.extend 
    acts: DS.hasMany('App.Act') 
    ageLimit: DS.attr('string') 
    centsAdvance: DS.attr('number') 
    centsDoor: DS.attr('number') 
    currency: DS.attr('string') 
    description: DS.attr('string') 
    endsAt: DS.attr('number') 
    priceAdvance: DS.attr('string') 
    priceDoor: DS.attr('string') 
    repeats: DS.attr('string') 
    repeatsUntil: DS.attr('string') 
    startsAt: DS.attr('number') 
    title: DS.attr('string') 
    url: DS.attr('string') 
    venue: DS.belongsTo('App.Venue') 
    venueSection: DS.attr('string') 

回答

0

IMO此無關,與你的路線,但與您的模型。請確保你聲明這樣說,這(它們必須存在,當然)

App.Event = DS.Model.extend({ 
    venue: DS.belongsTo('App.Venue'), 
    acts: DS.hasMany('App.Act'), 
    // go on with the model 
}); 

我發現它有助於一個{{ log event }}包括到模板中挖掘到控制器和模型,並確保它確實不得到加載

ps:你確實返回了路由中的ajax響應,你不知道?

+0

我確實在我的模型定義中有這個。我已經更新了顯示定義的問題。是的,我正在返回路由中的Ajax響應。 – 2013-03-10 21:46:19

0

您要返回的示例JSON的鏈接不起作用,您能否提供一個有效的示例?

您正在爲您的ajax調用轉移Ember-data,這意味着您將需要以更加手動的方式處理反序列化。如果你想燼來爲你做的,你需要調用進店,如:

App.EventsRoute = Ember.Route.extend({ 
    model: function() { 
     // other code here if necessary 
     return this.store.find('event', params._id); 
    } 

而且,只要我沒有得到(你的情況場地)我的相關對象加載到店,它是因爲JSON是不是在格式灰燼期待,這將是這樣的:

{ 
    Events: [{ Id: 1, Venues: [1], ... }], 
    Venues: [{ Id: 1, ... }] 
} 

不喜歡這樣的:

{ 
    Events: [{ Id: 1, Venue: { Id: 1, ... }, ... }], 

} 

或許這可以幫助?