TypeError in angularjs

0

Я пытаюсь отметить некоторые значения в списке как красный цвет шрифта и оставить по умолчанию на основе некоторого условия. Когда я пытаюсь назначить логический var для конкретных данных в списке, я получаю "TypeError: не могу присвоить свойство только для чтения 'match' of 123; Мой код s:

angular.forEach($scope.searchResults, function (value, index) {

  //populate searchResults
   $scope.searchResults[index].name = "ABC";
  
    $scope.searchResults[index].linkedRecords = [];
  if(//check some condition){
    $scope.searchResults[index].linkedRecords[i] ="123"; 
    $scope.searchResults[index].linkedRecords[i].match=true;
  }
    
  
  });
 <tr data-ng-repeat="searchResult in searchResults ">
   
   <td >
            <span data-ng-repeat="source in searchResult.linkedRecords" >
                <span ng-if="!source.match">{{ source }}</span>
                <span ng-if="source.match" style="color: red">{{ source }}</span>
                <br>
            </span></td>
   </tr>

Любая идея, как я могу сделать эту работу в html? Мне нужно установить что-то для каждого элемента и сделать эти элементы в списке красными.

Теги:

1 ответ

0
Лучший ответ

Вы устанавливаете свойство равным 123 тогда вы пытаетесь получить доступ к свойству, называемому 'match'.

$scope.searchResults[index].linkedRecords[i] = 123;

В этот момент значение $scope.searchResults[index].linkedRecords[i] равно 123.

Это означает, что эта строка:

$scope.searchResults[index].linkedRecords[i].match=true;

Эквивалентно:

(123).match = true;

Это не сработает, потому что тип Number неизменен, что означает, что вы не можете добавлять или изменять свойства в их непосредственном представлении объектов.


Возможно, вы захотите обернуть или поместить свой номер внутри объекта. Затем вы можете добавить другие свойства к этому объекту.

$scope.searchResults[index].linkedRecords[i] = { value: 123, match: true };

Тогда ваш HTML будет выглядеть примерно так.

<span data-ng-repeat="source in searchResult.linkedRecords" >
  <span ng-if="!source.match">{{ source.value }}</span>
  <span ng-if="source.match" style="color: red">{{ source.value }}</span>
  <br>
</span>
  • 0
    Любая идея, как я могу сделать эту работу в HTML? Мне нужно что-то установить и сделать эти элементы в списке красным.
  • 0
    Не могли бы вы предоставить немного больше кода? Может быть, пример набора данных для $ scope.searchResults?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню