Ember 2.7 наследование модели - как получить доступ к данным в шаблоне, полученным из модели, связанной с родителем?
В Ember 2.7 предположим, что у вас есть Person
класс, который имеет Address
модель (предположим city:DS.attr()
это единственный атрибут).
приложение / модели / 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
и добавляет поле статуса (например, на работу, на пенсию, уволен и т. д.)
приложение / модели / employee.js
import DS from 'ember-data';
import Person from '../models/person';
export default Person.extend({
status: DS.attr(),
statusCode: DS.attr(),
});
В компоненте, который отображает Employees
, как это:
приложение / шаблоны / Компоненты / работник-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
'), чтобы шаблон мог показать город этого человека из модели адреса?
1 ответ
Решение
{{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}}