如何在 Ember.js 中呈现从计算的 属性 返回的值?
How do I render the values returned from a computed property in Ember.js?
我的组件模板中有以下代码:
<th scope="row">{{@order.id}}</th>
<td>Name: {{@order.customer_name}}
</td>
<td>Delivery address: {{@order.address}}
Products in order: {{@order.products}}
Items: {{items}}
<td>{{@order.total_price}}$</td>
</tr>
而且我有我的计算 属性,它应该 return 并在从数据库 return 编辑的对象数组中呈现每个产品名称:
items: computed('order.products', function() {
let products = this.get('order.products');
products.forEach(product => {
for(let i=0; i<products.length; i++){
return console.log(products[i].name);
}
});
}),
当我 运行 以下一切正常时,名称显示在控制台中,如下所示:
Cheese on toast
3 Pizza
2 Macaroons bowl
但是当我尝试删除 console.log 和 return products[i].name 时,似乎没有任何内容被 returned。我是否遗漏了某些内容或试图在我的页面上错误地呈现它?
根据代码段,我假设您只想 return 来自 items
计算的 属性 的产品名称。如果是这样,那么这里有一些问题是循环的处理而不是实际计算的 属性。
因此在您的情况下,您可以使用 map 从产品数组中仅过滤掉产品名称。
items: computed('order.products', function() {
let products = this.get('order.products');
let productNames = products.map((product) => {
return product.name;
});
return productNames;
})
此外,计算的 属性 仅保留从定义中 return 编辑的值。因此,您需要 return 明确显示上述代码段 (return productNames
) 中的值。
我的组件模板中有以下代码:
<th scope="row">{{@order.id}}</th>
<td>Name: {{@order.customer_name}}
</td>
<td>Delivery address: {{@order.address}}
Products in order: {{@order.products}}
Items: {{items}}
<td>{{@order.total_price}}$</td>
</tr>
而且我有我的计算 属性,它应该 return 并在从数据库 return 编辑的对象数组中呈现每个产品名称:
items: computed('order.products', function() {
let products = this.get('order.products');
products.forEach(product => {
for(let i=0; i<products.length; i++){
return console.log(products[i].name);
}
});
}),
当我 运行 以下一切正常时,名称显示在控制台中,如下所示:
Cheese on toast
3 Pizza
2 Macaroons bowl
但是当我尝试删除 console.log 和 return products[i].name 时,似乎没有任何内容被 returned。我是否遗漏了某些内容或试图在我的页面上错误地呈现它?
根据代码段,我假设您只想 return 来自 items
计算的 属性 的产品名称。如果是这样,那么这里有一些问题是循环的处理而不是实际计算的 属性。
因此在您的情况下,您可以使用 map 从产品数组中仅过滤掉产品名称。
items: computed('order.products', function() {
let products = this.get('order.products');
let productNames = products.map((product) => {
return product.name;
});
return productNames;
})
此外,计算的 属性 仅保留从定义中 return 编辑的值。因此,您需要 return 明确显示上述代码段 (return productNames
) 中的值。