如何使用Ember在控制器中返回格式化字符串?

时间:2014-03-11 20:33:36

标签: ember.js

我认为这会非常简单,但它会变成痛苦的屁股。

我需要创建一个接受字符串并将其重新格式化为URL slug的函数。例如,我传入字符串“The Huventures of Huckleberry Finn”,我的函数将返回字符串“the_adventures_of_huckleberry_finn”。我在进行实际转换时没有问题。但是在Ember中,操作只能返回True,False或Undefined,因此操作总是返回一个名为Undefined的对象,而不是我告诉它返回的字符串。

如何在控制器中创建此函数/ action / computed属性,以便正确返回格式化字符串?我试图将一个普通的JS函数添加到控制器中。我也尝试将其定义为计算属性,但此操作仅在控制器中使用,模板不需要知道slug的任何内容,因此计算属性不是真的有意义而且我无法得到它无论如何都要工作。

2 个答案:

答案 0 :(得分:1)

好的,这是一个如何实现这个目标的例子:jsfiddle.net/NQKvy/837

答案 1 :(得分:0)

我会返回一个像slug

这样的计算属性调用
slug: function(){
 return this.get('title').split(' ').join('_');
}.property('title')

然后您可以在控制器中的this.get('slug')模板中使用{{slug}}

干杯