0

いくつかのオプションで複数選択を表示する次のコードがあります。すべてのオプションは、翻訳フィルター (angular-translate) を使用して翻訳されます。

<select multiple class="form-control" ng-model="field.value">
    <option ng-repeat="option in field.options()">{{option.name | translate}}</option>
</select>

次のようなものが生成されます。

['Orange', 'Apple', 'Banana']

いくつかのオプションが選択され、言語が変更された場合、angularjs は選択された項目 ('Orange' != 'Apelsin') に一致するものを見つけられないため、空の項目が追加され、次のようになります。

[' ', ' ', 'Apelsin', 'Äpple', 'Banan']

言語の変更によって選択リストが台無しにならないようにするにはどうすればよいですか? 翻訳された名前の代わりにそれに一致するように、各オプションに ID を付けたいと思います。

4

1 に答える 1

1

翻訳された名前をタグ内に保持しますが、翻訳されていない名前もオプションの値属性として使用します。

<option ng-repeat="option in options">{{option | translate }}

<option value="{{option}}" ng-repeat="option in options">{{option | translate }}

Angular固有のhttp://www.w3schools.com/tags/att_option_value.aspではありません

私は同じ問題を抱えていましたが、これで解決しました...


さらに、コントローラーのデフォルトとしていくつかのオプションを設定します

テンプレート

ng-model="field.value"

コントローラ

$scope.field.value = options[0] // First will be selected by default
于 2014-06-11T14:16:56.167 に答える