Отладка Замены IE8 Javascript innerHTML Ошибка периода выполнения

Если вы используете item.data.section, то это превратится в undefined, поскольку в вашем объекте нет ключа с именем section, и тогда ng-model будет undefined + room, что приведет к undefined . [+1112]

Вы можете использовать ng-model="item.data['section' + room]" для ссылки на ваши ключи. У вас есть рабочий пример ниже. Я добавил функцию обновления, чтобы увидеть, что привязка ng-model действительно работает.

var module = angular.module("myModule", []);
module.controller("myController", function($scope) {
  $scope.item = {
    key: "itemKey",
    name: "itemName",
    data: {
      sectionA: "section A String ",
      sectionB: "section B String ",
      sectionZ: "section Z String "
    }
  };

  $scope.rooms = ['A', 'B', 'Z'];

  let i = 0;
  $scope.updateValues = function() {
    setInterval(function() {
      Object.keys($scope.item.data).forEach(key => {
        let v = $scope.item.data[key];
        v = v.substr(0, v.length - 1) + i;

        $scope.item.data[key] = v;
        i = (++i) % 10;
      });

      setTimeout(function() {
        $scope.$apply()
      }, 0);
    }, 1000);
  }

  $scope.updateValues();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<div ng-app="myModule">
  <div ng-controller="myController">
    <div class="item" ng-repeat="room in rooms">
      {{ room }}
      <input type="text" name="{{ item.key }}" class="form-control" ng-model="item.data['section' + room]">
    </div>
  </div>
</div>

Ура!

17
задан thejartender 3 May 2012 в 17:46
поделиться

2 ответа

Вы не можете установленное значение к innerHTML таблицы, необходимо получить доступ к дочерним ячейкам или строкам и изменить их как этот:

document.getElementById(tabid).rows[0].cells.innerHTML = 'blah blah';

Для большего количества информации/примера: Таблица, TableHeader, TableRow, Объекты TableData

15
ответ дан 30 November 2019 в 11:18
поделиться

Это не большая проблема, так как я столкнулся с той же проблемой несколько дней назад и причиной этой ошибки происходит, например, в том, что - существует ошибка в нашем формате html или вы используете элемент, отличный от для замены innerHTML, т.е. используйте только, не используйте таблицы, div для замены innerHTML.

  • SwapnilK
-1
ответ дан 30 November 2019 в 11:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: