2017-11-23 6 views
1

selectize.jsのプレースホルダに翻訳を追加しようとしています。selectize.jsのプレースホルダ翻訳

しかし、それは翻訳に関しては異なる動作をしているようです。例

<selectize config='selectizeConfig' placeholder='keyword' ng-click="clear()" 
options="myOptions" ng-model="selected"></selectize> 

については

私は

placeholder="{{'keyword'| translate }}" 

はそれが動作しない、ことをやってみてください!それはuib-tooltipやその他のものとうまく動作しますが。

<input type="text" placeholder="{{'keyword'| translate}}"/> 

+0

あなたは、角度-selectize.jsアドオンライブラリの権利を使用している – charlietfl

+0

翻訳を行うために、コントローラでの '$ filter'を使用してもらえますか? (あなたのanglejsアプリでselectize.jsに加えて) – Shantanu

+0

私に例を教えてもらえますか? そして@Shantanuはい私です! – Ziko

答えて

1

したがって、角度選択を使用しているときは、設定オブジェクトにプレースホルダを設定するオプションがあります。代わりに、DOMにプレースホルダ属性を持つことをお勧めします。

次のように$のscope.placeholderがコントローラで定義されている
$scope.myConfig = { 
    create: true, 
    onChange: function(value){ 
     console.log('onChange', value) 
    }, 
    placeholder : $scope.placeholder 
} 

:だからあなたのconfigオブジェクトは、次のようになります。ここ

$scope.placeholder = $filter('translate')('PLACEHOLDER'); 

'PLACEHOLDER'は、翻訳IDです。したがって、この方法では、ngTranslateを使用して翻訳に従ってプレースホルダを変更することができます。

翻訳に依存します。アプリケーションには翻訳が実装されています(例:あなたのアプリケーションが言語の変更にリロードしない場合は、言語の変更で、その選択オブジェクトの設定オブジェクトを再度定義する必要があるような、もっと多くのことを処理する必要があります&要素を削除する必要があります& DOMでng-ifを使用すると、そのselectize要素にちらつきがほとんどありませんが、うまく実行されます。あなたのアプリケーションが言語の変更をリロードする場合、このロジックの実装は必要ありません。

Working Plunker Example

+0

お返事ありがとうございます。実際には、言語を変更してもアプリケーションはページをリロードしません。 – Ziko