2016-05-03 3 views
0

У меня есть меню, в котором отображаются данные из json-файла, страны мира по имени.Угловое JS-чувствительное к регистру связывание?

У меня есть текстовое поле рядом с ним, которое привязано к нему и отображает данные iso 3166 alpha_2 (например, CH для Швейцарии).

Кроме того, пользователь может ввести 2-значный код и отобразить правильное имя в меню.

enter image description here

Моя проблема заключается в том, что пользователь должен ввести значение alpha_2 в прописные, чтобы соответствовать. Используя мой пример выше, введите «CH», но «ch» не отображает совпадений в меню.

Есть ли способ обойти это?

<td> 
    <input type="text" size="4" ng-model="country_import.alpha_2"> 
    </td> 
    <td> 
    <select ng-model="country_import" ng-options="s.name for s in iso3166 track by s.alpha_2" class="form-control input-xs country-menu"></select> 
    </td> 
+0

вы можете autocapitalize его. обратитесь к этому http://stackoverflow.com/questions/15242592/how-to-autocapitalize-an-input-field –

ответ

2

Просто используйте .toUpperCase() на track by переменной

<select ng-model="country_import" ng-options="s.name for s in iso3166 track by s.alpha_2.toUpperCase()" class="form-control input-xs country-menu"></select>

Вот plunker для подобного случая: https://plnkr.co/edit/pESocfNey55uZb85RgDE?p=preview

1

Я бы установил часы на это и превратил все, что пользователь вводит в верхний регистр.

$scope.$watch('country_import.alpha_2', function() { 
     $scope.country_import.alpha_2 = $scope.country_import.alpha_2.toUpperCase(); 
    });