2016-04-29 11 views
1

サービスコールの結果を入力するhbsファイルにselect-2タグがあります。このサービスはキャメルケースに変更する必要があるすべての大文字で結果を返します。 以前は単純なselect htmlタグを使用していたため、これを実現するためにuc-wordヘルパーを使用することができました。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> 

今HBSタグ

{{select-2 
     content=fruits 
     optionLabelPath="value" searchEnabled=false 
     optionValuePath="id" 
     value=selectedFruit 
     placeholder="Any" 
     allowclear=true 
    }} 

から2に選択するように変更することに私もキャメルケースにこれを変更する方法はありますか?

また、結果を変更せずに空のオプションを使用することはできますか?

+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

答えをありがとう。 select 2タグでそのヘルパーを使用する直接的な方法があるかどうかを知りたい – sree

関連する問題