如果我有一个“组织”,有很多“诊所”,在我的应用程序中,我不希望嵌套路线,但我想访问组织页面上的诊所和诊所页面上的组织,是否有我需要做些什么特别的事情?我使用rails作为后端,如果我从RestAdapter切换到ActiveModelAdapter并嵌入诊所ID它可以工作,但我想知道如何使用标准的RestAdapter。
路由器:
App.Router.map ->
@resource 'organizations', ->
@resource 'organization', path: 'organization/:organization_id', ->
@resource 'clinics', ->
组织模板:
<h1>{{name}}</h1>
<h2>Clinics</h2>
{{#link-to 'clinics.new'}}New Clinic{{/link-to}}
<ul id="org-clinics">
{{#each clinics}}
<li>{{#link-to 'clinic' this}}{{name}}{{/link-to}}</li>
{{else}}
<strong>No clinics yet...</strong>
{{/each}}
</ul>
组织模式:
App.Organization = DS.Model.extend
name: DS.attr 'string'
clinics: DS.hasMany 'clinic', async: true
诊所模板:
<h1>{{name}}</h1>
<strong>Organization: </strong>{{organization.name}}
诊所模型:
App.Clinic = DS.Model.extend
name: DS.attr 'string'
organization: DS.belongsTo 'organization'
答案 0 :(得分:1)
取决于您希望如何进行,但您可以轻松地绑定控制器内容。例如:
App.OrganizationsController = Ember.ArrayController.extend({
needs: ['clinics'],
clinics: null,
clinicsBinding, 'controllers.clinics.content',
clinicsUpdated: function () {
// Do something here because some record updated
}.observes('clinics.@each.content') // Bind properties
});
App.ClinicsController = Ember.ArrayController.extend({
needs: ['organizations'],
organizations: null,
organizationsBinding, 'controllers.organizations.content'
});
您也可以在模板中访问它们。例如,{{#each clinics}}
希望有所帮助!