Ember: 如何在动态段模板中访问另一个模型数据
Ember: How to access another model data in a dynamic segment template
在动态分段模板中,如何使用路线显示来自模型的数据?
所以例如我有这三个路线 phone_id
作为动态段
Router.map(function() {
this.route('phones');
this.route('phone', {path: 'phones/:phone_id'});
this.route('numbers');
});
在 phones/:phone_id
模板中,我试图显示所有数字模型。所以在 phone.js
路线中,我尝试 return 数字模型并输出它但它什么也没显示。
import Ember from 'ember';
export default Ember.Route.extend({
numbers(){
return this.get("store").findAll('number')
}
});
我也用 params.phone_id
作为参数尝试过,但没有成功。 (也没有显示错误)。
模板phone.hbs
看起来像
<h5> Device Id: {{model.device_id}}</h5>
{{#each numbers as |number|}}
{{number.digits}}
{{/each}}
有趣的是 model.device_id
return 是正确的,尽管我什至没有将它设置为 return phone.js
路线。但是我为 numbers
实现的每个循环都没有 return 任何东西。
return 动态细分模板中的 return 数字模型数据是否有解决方法?
编辑:
我到达动态细分的方式是通过 link 到:
{{#each phones as |phone|}}
<li>{{#link-to 'phone' phone}} {{phone.id}}{{/link-to}}</li>
{{/each}}
只有从路由的模型钩子返回的对象被设置为控制器的模型。
如果你想在模板中使用数字,那么在控制器中将其写为计算 属性。
numbers:Ember.computed(function(){
return this.store.findAll('number');
});
或者您可以在模型本身中设置这些属性
因此您的路线模型挂钩将如下所示
model:function(params){
return Ember.RSVP.hash({
phone: this.store.findRecord('phone',params.phone_id),
numbers: this.store.findAll('number')
});
}
之后您将在模型中获得两个属性
现在您的模板将如下所示
<h5> Device Id: {{model.phone.device_id}}</h5>
{{#each model.numbers as |number|}}
{{number.digits}}
{{/each}}
在动态分段模板中,如何使用路线显示来自模型的数据?
所以例如我有这三个路线 phone_id
作为动态段
Router.map(function() {
this.route('phones');
this.route('phone', {path: 'phones/:phone_id'});
this.route('numbers');
});
在 phones/:phone_id
模板中,我试图显示所有数字模型。所以在 phone.js
路线中,我尝试 return 数字模型并输出它但它什么也没显示。
import Ember from 'ember';
export default Ember.Route.extend({
numbers(){
return this.get("store").findAll('number')
}
});
我也用 params.phone_id
作为参数尝试过,但没有成功。 (也没有显示错误)。
模板phone.hbs
看起来像
<h5> Device Id: {{model.device_id}}</h5>
{{#each numbers as |number|}}
{{number.digits}}
{{/each}}
有趣的是 model.device_id
return 是正确的,尽管我什至没有将它设置为 return phone.js
路线。但是我为 numbers
实现的每个循环都没有 return 任何东西。
return 动态细分模板中的 return 数字模型数据是否有解决方法?
编辑:
我到达动态细分的方式是通过 link 到:
{{#each phones as |phone|}}
<li>{{#link-to 'phone' phone}} {{phone.id}}{{/link-to}}</li>
{{/each}}
只有从路由的模型钩子返回的对象被设置为控制器的模型。
如果你想在模板中使用数字,那么在控制器中将其写为计算 属性。
numbers:Ember.computed(function(){
return this.store.findAll('number');
});
或者您可以在模型本身中设置这些属性
因此您的路线模型挂钩将如下所示
model:function(params){
return Ember.RSVP.hash({
phone: this.store.findRecord('phone',params.phone_id),
numbers: this.store.findAll('number')
});
}
之后您将在模型中获得两个属性
现在您的模板将如下所示
<h5> Device Id: {{model.phone.device_id}}</h5>
{{#each model.numbers as |number|}}
{{number.digits}}
{{/each}}