EmberJS - 更改对象属性的显示方式(不依赖于路径的控制器)

时间:2013-06-22 17:01:32

标签: templates object properties model ember.js

在我的Ember应用程序中,我有一个名为Item的对象模型,其属性为'price',它包含一个浮点值,例如20.5。当我在模板{{price}}中使用该属性时,我希望它的格式如下:$ 20.50。

此对象不是绑定到路径上的控制器的模型,而是Ember数组中的一个元素,称为items,它是路径中模型的属性。所以我的模板中有这样的东西:

{{#each item in items}}
  {{item.price}}
{{/each}}

问题似乎很简单,但我找不到解决方案。我的想法是,我不想更改属性的名称,使其看起来像我想要的方式,因为我可以创建一个格式化price属性的计算属性,但是我必须在模板。

1 个答案:

答案 0 :(得分:1)

你能做的就是编写自己的自定义把手助手。 对于您的用例,它看起来像这样:

Ember.Handlebars.registerBoundHelper('formatNumber', function(value) {
  return "$" + value.toFixed(2);
});

然后以这种方式在模板中使用它:

{{#each item in items}}
  {{formatNumber item.price}}
{{/each}}

请参阅此处了解jsbin

希望它有所帮助。