我刚刚开始学习ember并且正在编写一个从数据库中读取的简单应用程序。我已经得到它与夹具一起工作我想要什么,并刚开始从数据库读取一些进展。现在我的问题是我无法访问子元素 - 我有一个父类,我通过序列化程序使用json响应,我在json请求中提供子元素。但是,我不知道从这里去哪里获取ember中的父类来读取和显示子元素。使用下面的代码可能会更有意义。
如果您需要任何其他代码,请告诉我 - 所有标准的Ember代码都没有规格!我唯一的主要目标是当前嵌套的ruby路由作为同类群组使用:/ id / boots /:id使用fixture数据加载时的ember /:id /:id:)
型号:
Plato.Boot = DS.Model.extend(
name: DS.attr("string"),
cohort: DS.belongsTo('Plato.Cohort'),
hubs: DS.hasMany('Plato.Hub')
)
Plato.Cohort = DS.Model.extend(
name: DS.attr('string'),
boots: DS.hasMany('Plato.Boot')
)
Route.rb
root to: 'application#index'
resources :cohorts do
resources :boots
end
resources :boots
群组(父母)控制器
class CohortsController < ApplicationController
respond_to :json
def index
respond_with Cohort.all
end
def show
respond_with Cohort.find(params[:id])
end
end
引导(子)控制器
class BootsController < ApplicationController
respond_to :json
def index
respond_with Boot.all
end
def show
respond_with Boot.find(params[:id])
end
end
Router.js.coffee
Plato.Router.map ()->
this.resource('cohorts', ->
this.resource('cohort', {path: '/:cohort_id'}, ->
this.resource('boot', {path: 'boots/:boot_id'})
)
)
Plato.CohortsRoute = Ember.Route.extend(
model: ->
Plato.Cohort.find()
)
Plato.BootsRoute = Ember.Route.extend(
model: ->
Plato.Boot.find(params)
)
答案 0 :(得分:1)
您是否尝试在路由器地图中定义嵌入式记录boots
?
例如:
Plato.Adapter = DS.RESTAdapter.extend();
Plato.Store = DS.Store.extend({
adapter: Plato.Adapter
});
Plato.Adapter.map('Plato.Cohort', {
boots: {embedded: 'always'}
});
这样嵌入的记录将与父记录一起加载。
希望它有所帮助。