【发布时间】:2016-09-29 21:30:43
【问题描述】:
我正在努力获得“选择”以使用 Angular 选择元素的“跟踪依据”。我有以下选择:
<select id="licenseType" ng-model="selectedLicense"
ng-options="key for (key, value) in licenseMap track by key"
ng-change="doUpdate()">
</select>
用这个js:
$scope.selectedLicense = $scope.licenseMap["Please Select"];
当我摆脱“按键跟踪”时,上面的 js 工作 - 初始选择被预设。使用“按键跟踪”,预选是空白的。我需要“按键跟踪”来获取选定的值,这是迄今为止唯一有效的方法。到目前为止,我已经尝试过以下组合但不起作用:
/*
var license = document.getElementById('licenseType');
license.options.selectedIndex = 1;
license.options[license.options.selectedIndex].selected = true;
$("#licenseType").val("Please Select");
$('#licenseType').children('option[value="1"]').attr('selected', true);
*/
我将不胜感激这里的一些帮助,让它发挥作用。谢谢。
【问题讨论】:
-
为什么需要track by?在 doUpdate() 中,您应该能够访问 selectedLicense 并在此处获取所选值。
-
@user2917629: 我的 select 是一个多维数组,track-by 是获取所选键的唯一技巧,否则我会返回数组
标签: angularjs select angularjs-track-by