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}}
Другие вопросы по тегам