AngularJS选项长度IE

时间:2016-08-22 14:15:13

标签: angularjs internet-explorer element

我有一些类型的选项列表,例如汽车,公共汽车,格式如下:<option value="BUS" label="Bus">Bus</option>当我想计算列表的长度时,我在Chrome中使用angular.element(element[0].options).length它会返回正确的长度,但在Internet Explorer上它返回1

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>