【发布时间】:2015-08-23 08:03:12
【问题描述】:
我有一个像这样的角度指令:
'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>
我可以选择一个选项,模型会按预期使用国家代码更新,但国家名称不会出现在选择字段中,除非我再次选择它。
换句话说,过程进行
- 点击
- 选择国家
- 型号已更新为国家代码,但名称未出现在选择字段中
- 再次单击并选择
- 名称出现在选择字段中
如何让选择字段在选择时显示国家名称?
【问题讨论】:
标签: javascript angularjs