Ember 2.7 模型继承——如何访问模板中来自父类相关模型的数据?

Ember 2.7 model inheritance - how to access data in the template that comes from a model related to parent?

在 Ember 2.7 中假设你有一个 Person class 有一个 Address 模型(假设 city:DS.attr() 是唯一的属性)。

app/models/person.js

import DS from 'ember-data';

export default DS.Model.extend({
  firstName: DS.attr(),
  lastName: DS.attr(),
  fullName: Ember.computed('firstName', 'lastName', function() {
    return `${this.get('lastName')}, ${this.get('firstName')}`;
});

Employee 继承自 Person 并添加了一个状态字段(如聘用、退休、解雇等)

app/models/employee.js

import DS from 'ember-data';

import Person from '../models/person';

export default Person.extend({
  status: DS.attr(),
  statusCode: DS.attr(),
});

在显示 Employees 的组件中,像这样:

app/templates/components/employee-list.hbs

{{#each employees as |employee|}}
<div>
  <h2>{{employee.fullName}}</h2>
  <p>Home Base : [city]</p>
  <p>Status : {{employee.status}}</p>
</div>
{{/each}}

什么是 EmberJS 获取此 Employee 地址的方法(即这个 'Person'),以便模板可以显示此人的城市来自地址模型?

{{employee.address.city}} 是需要的把手代码:

{{#each employees as |employee|}}
<div>
  <h2>{{employee.fullName}}</h2>
  <p>Home Base : {{employee.address.city}}</p>
  <p>Status : {{employee.status}}</p>
</div>
{{/each}}