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}}
在 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}}