我的hbs文件中有一个select-2标记,我在其中填充服务调用的结果。该服务以所有大写字母返回结果,我必须将其更改为Camel案例。 以前我使用简单的select html标签,因此可以使用uc-words helper来实现这一点。
<select onchange={{action "doSomething" value="target.value"}}>
<option value="">Any</option>
{{#each fruits as |fruit|}}
<option value={{fruit.id}}>{{uc-words fruit.value force=true}}</option>
{{/each}}
</select>
现在改为选择-2 hbs标签
{{select-2
content=fruits
optionLabelPath="value" searchEnabled=false
optionValuePath="id"
value=selectedFruit
placeholder="Any"
allowclear=true
}}
我是否有办法将此更改为骆驼案?
我也可以在不修改结果的情况下使用空选项吗?
答案 0 :(得分:0)
根据您的时间范围以及您想要的解决方案的优雅程度,您可以做出一些选择。
如果快速完成工作是你想要的,只需查看uc-words helper source,你就可以将该功能复制到utils目录。
然后在您的服务中,在填充适当的属性之前,只需使用上面链接的函数转换水果值集。
为您的用例复制和调整的功能:
// utils/helpers.js
export function ucWords(word, options) {
var string = String(word),
force = (options.force === true) ? true : false;
if(force) {
string = string.toLowerCase();
}
return string.replace(/^([a-z\u00E0-\u00FC])|\s+([a-z\u00E0-\u00FC])/g, function($1) {
return $1.toUpperCase();
});
}
// services/populate.js
//..
import { ucWords } from 'utils/helpers.js'
export default Service.extend({
fruitStore: service(),
upperCaseFruit: Ember.computed('fruitStore.fruits', function(){
return this.get('fruitStore.fruits').map(fruit => {
fruit.value = ucWords(fruit.value);
return fruit;
});
})
})