Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ember.js侧载模型不工作_Ember.js_Ember Data - Fatal编程技术网

ember.js侧载模型不工作

ember.js侧载模型不工作,ember.js,ember-data,Ember.js,Ember Data,我必须覆盖一条路线来执行一些自定义加载模型,如下所示: 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)

我必须覆盖一条路线来执行一些自定义加载模型,如下所示:

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}"
{
    Events: [{ Id: 1, Venues: [1], ... }], 
    Venues: [{ Id: 1, ... }]
}
返回的JSON包含侧面加载的模型,但它们不是由ember加载的。我猜我需要做点什么来把它们装好,但我不知道是什么。我非常感谢你在这方面的帮助

返回的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')

依我看,这与你的路线无关,但与你的模型有关。确保你这样声明(当然他们必须在场)

我发现将
{{log event}}
包含到模板中有助于深入了解控制器和模型,并确保它确实没有被加载


注意:您确实在路由中返回了ajax响应,是吗?

您返回的示例JSON链接不起作用,您能提供一个工作示例吗

您正在为您的ajax调用处理Ember数据,这意味着您将需要以更手动的方式处理它的反序列化。如果您希望ember为您这样做,您需要打电话到商店,如:

App.EventsRoute = Ember.Route.extend({
    model: function() {
        // other code here if necessary
        return this.store.find('event', params._id);
    }
此外,每当我没有将我的相关对象(在您的例子中是场地)加载到存储中时,这是因为JSON的格式不是Ember期望的格式,如下所示:

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}"
{
    Events: [{ Id: 1, Venues: [1], ... }], 
    Venues: [{ Id: 1, ... }]
}
不是这样的:

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

}

也许这会有帮助?

我的模型定义中确实包含了这一点。我已经更新了显示定义的问题。是的,我在路由中返回Ajax响应。