我有一些类型的选项列表,例如汽车,公共汽车,格式如下:<option value="BUS" label="Bus">Bus</option>
当我想计算列表的长度时,我在Chrome中使用angular.element(element[0].options).length
它会返回正确的长度,但在Internet Explorer上它返回1
答案 0 :(得分:1)
直接使用element[0].options.length
,而不是将其包裹在angular.element()
中。如果您的列表是数据驱动的(我推荐),那么您也可以检查包含数据的数组的长度。
var list = document.getElementById('list');
console.log('list.options.length = ' + list.options.length);
<select id="list">
<option>A</option>
<option>B</option>
<option>C</option>
</select>
关于数据驱动列表,理想情况下,您应该有一个车辆/传输/任何数组(可能是具有属性的复杂对象或只是唯一的字符串)。将该数组公开给视图后(通过范围或this
语法controllerAs
),您可以使用ngOptions
生成选项列表。例如:
Controller JS:
$scope.items = [{
id: 1,
label: 'aLabel',
subItem: { name: 'aSubItem' }
}, {
id: 2,
label: 'bLabel',
subItem: { name: 'bSubItem' }
}];
模板HTML:
<select ng-options="item as item.label for item in items track by item.id" ng-model="selected"></select>