我有两种模式:
BuzsakiViewer.Neuron = DS.Model.extend
number: DS.attr()
plots: DS.hasMany 'plot', { async: true }
BuzsakiViewer.Plot = DS.Model.extend
filename: DS.attr()
neuron: DS.belongsTo('neuron')
path: ( ->
'images' + '/' + @get('filename')
).property('filename')
下面是一个示例neuron
灯具和一个示例plot
灯具。我的实际声明有更多记录:
BuzsakiViewer.Neuron.FIXTURES = [
{
"id": 1,
"plots": [ 80, 81, 82, 83, 84, 85, 86, 87 ]
}
]
BuzsakiViewer.Plot.FIXTURES = [
{
"filename": "n1_avgleft.png",
"id": 80,
"neuron": 1
}
]
我有一个嵌套路线 neuron /:neuron_id / plots ,它应该将模型设置为特定神经元的图:
BuzsakiViewer.Router.map ->
@resource 'neurons'
@resource 'neuron', path: '/neurons/:neuron_id', ->
@route 'plots'
@resource 'plots'
@resource 'plot', path: '/plots/:plot_id'
BuzsakiViewer.NeuronPlotsRoute = Ember.Route.extend
model: (params) ->
@store.find('neuron', params.neuron_id).then (neuron) ->
neuron.get('plots')
但是当我去 / neurons /:neuron_id / plots 时,没有加载图。没有错误,但我可以在Chrome Ember Inspector中看到没有模型绑定到NeuronPlots路线。我确信我加载的神经元记录的plots
字段中的所有图都存在于Plot.FIXTURES
声明中。我做错了什么?
答案 0 :(得分:1)
Nueron Plots路由不会获得neuron_id,因此您可能正在查询undefined。您可以使用modelFor获取上面路径的资源,然后在其上调用get plot,因此它看起来像这样(原谅我缺乏coffeescript技能)
BuzsakiViewer.NeuronPlotsRoute = Ember.Route.extend
model: (params) ->
@modelFor('nueron').get('plots')
答案 1 :(得分:0)
您可以使用需要在控制器中执行此操作 - Dependencies between controllers