Angular JS docs говорят, что директива ngRepeat должна установить переменную $ index в индекс элемента в массиве. Это отлично работает в Chrome и IE 10, но IE 9 показывает «{{$ index}}» вместо номера. Вот небольшой пример:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Host Parameters</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js"></script>
<style>
.host-param-table {
border-collapse: collapse;
}
.host-param-table td, .host-param-table th {
border: 1px solid gray;
text-align:center;
padding: 2px;
font-size: 15px;
font-family: Arial;
}
</style>
</head>
<body id="ng-app" data-ng-app>
<div data-ng-controller="HostParametersCtrl">
<table class="host-param-table">
<tr>
<th>Name</th>
<th>Index</th>
<th>On</th>
<th>Value (Hex)</th>
<th>Value (Output)</th>
</tr>
<tr data-ng-repeat="p in params">
<td>{{p.name}}</td>
<td>{{$index}}</td>
<td><input data-ng-model="p.isEnabled" type="checkbox" /></td>
<td><input data-ng-model="p.value" data-ng-disabled="!p.isEnabled" type="text" /></td>
<td>0x{{p.value}}</td>
</tr>
</table>
</div>
<script type="text/javascript">
function HostParametersCtrl($scope) {
$scope.params = [
{ 'isEnabled': false, 'name': 'First', 'value': '' },
{ 'isEnabled': false, 'name': 'Second', 'value': '' },
{ 'isEnabled': false, 'name': 'Third', 'value': '' },
{ 'isEnabled': false, 'name': 'Fourth', 'value': '' },
{ 'isEnabled': false, 'name': 'Fifth', 'value': '' },
{ 'isEnabled': false, 'name': 'Sixth', 'value': '' },
{ 'isEnabled': false, 'name': 'Seventh', 'value': '' }
];
}
</script>
</body>
</html>
Рассматриваемый в Chrome 29:
Рассматриваемый в IE 9:
Обратите внимание, что флажки отключить входы, как ожидалось , Это просто индекс, который сломан. Сегодня мой первый день, используя Angular JS, поэтому я надеюсь, что есть что-то простое, что я забыл, и это легко исправить. Что я делаю не так?
Угловая работа на всех в IE? Вы видите p.name? – BoxerBucks
@BoxerBucks Связывание, похоже, работает, но переменная индекса $ нет. Вот почему я думаю, что я сделал что-то неправильно. Сначала ничего не работало, но добавление 'id =" ng-app "' исправляло большую часть его. http://docs.angularjs.org/guide/ie – styfle
Это, наверное, проблема начальной загрузки ... я использовал $ index и работал над IE7 ... Можете ли вы предоставить нам плункер или скрипку? – Galdo