2016-04-29 60 views
1

我在我的hbs文件中有一個select-2標籤,其中填充了服務調用的結果。該服務以全部大寫字母返回結果,我必須更改爲駱駝案例。 以前我使用簡單的選擇html標籤,因此可以使用uc-words helper來實現這一點。在select2標籤中的uc-words

<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

如果可能的話把它傳遞給選擇-2之前修改水果。它會工作 – murli2308

回答

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; 
    }); 
    }) 

}) 
+0

我可以有一個空的選項,而不修改結果?它可以在標籤本身處理嗎? – sree

+0

感謝您的回答。我想知道是否有直接的方式使用該選擇2標籤的助手 – sree