У меня есть угловая директива, как так:Angularjs поле выбора не отображает выбранный
'use strict';
angular.module('countrySelect', [])
.directive('countrySelect', ['$parse', function($parse) {
var countries = [
{ code: "af", name: "Afghanistan" },
{ code: "ax", name: "Åland Islands" },
{ code: "al", name: "Albania" },
{ code: "dz", name: "Algeria" },
];
return {
template: '<select ng-options="c.code as c.name for c in countries">',
replace: true,
link: function(scope, elem, attrs) {
scope.countries = countries;
if (!!attrs.ngModel) {
var assignCountry = $parse(attrs.ngModel);
elem.bind('change', function(e) {
assignCountry(elem.val());
});
scope.$watch(attrs.ngModel, function(country) {
elem.val(country);
});
}
}
}
}]);
И отборное поле в шаблоне, как так:
<div country-select ng-model="citizenship"></div>
можно выбрать опцию, и модель обновляется с кодом страны, как предполагалось, но название страны не отображается в поле выбора, если я не выберу его снова.
Другими словами, процесс идет
- нажмите
- выберите страну
- модель обновляется с кодом страны, но имя не появляется в поле выбора
- нажмите и выберите снова
- имя появляется в поле выбора
Как мне выбрать поле выбора для отображения имени страны при выборе?
Большое спасибо! Оно работало завораживающе. –