我认为这会非常简单,但它会变成痛苦的屁股。
我需要创建一个接受字符串并将其重新格式化为URL slug的函数。例如,我传入字符串“The Huventures of Huckleberry Finn”,我的函数将返回字符串“the_adventures_of_huckleberry_finn”。我在进行实际转换时没有问题。但是在Ember中,操作只能返回True,False或Undefined,因此操作总是返回一个名为Undefined的对象,而不是我告诉它返回的字符串。
如何在控制器中创建此函数/ action / computed属性,以便正确返回格式化字符串?我试图将一个普通的JS函数添加到控制器中。我也尝试将其定义为计算属性,但此操作仅在控制器中使用,模板不需要知道slug的任何内容,因此计算属性不是真的有意义而且我无法得到它无论如何都要工作。
答案 0 :(得分:1)
好的,这是一个如何实现这个目标的例子:jsfiddle.net/NQKvy/837
答案 1 :(得分:0)
我会返回一个像slug
这样的计算属性调用slug: function(){
return this.get('title').split(' ').join('_');
}.property('title')
然后您可以在控制器中的this.get('slug')模板中使用{{slug}}
。
干杯