Angular — создание уникального идентификатора css для каждой ячейки таблицы

Я работаю над проектом, в котором мне нужен уникальный идентификатор CSS для каждой ячейки таблицы. Формат таблицы примерно такой.

<tr *ngFor = "let classroom of schoolReportData ; let i = index">
  <td id = "{{ 'pieChartDiv'+(i+1) }}"></td>
  <td id = "{{ 'pieChartDiv'+(i+1) }}"></td>
  <td id = "{{ 'pieChartDiv'+(i+1) }}"></td>
  <td id = "{{ 'pieChartDiv'+(i+1) }}"></td>
</tr>           

Я пытаюсь сгенерировать css id с помощью вышеуказанного метода, где я увеличиваю переменную индекса на 1. Этот трюк не работает, и все td получают одно и то же id, хотя этот метод генерирует уникальный идентификатор для каждой строки.

Я очень ценю любую помощь. Я сделал много трюков, но ничего не работает для меня :(

Спасибо!

какой результат вы получаете?

Pranay Rana 17.07.2019 07:35

какое значение индекса на выходе?

Ahmad 17.07.2019 07:36

Я получаю один и тот же идентификатор для всех td, но мне нужен уникальный идентификатор для них.

Neeraj 17.07.2019 07:37

Вывод приведенного выше кода pieChartDiv1 для всех td первой строки.

Neeraj 17.07.2019 07:38

в вашем случае вы должны получить 4 td с одинаковыми id для каждого элемента в schoolReportData, если вам нужны уникальные id, оставьте только один td внутри *ngFor

Damian Pioś 17.07.2019 07:41

попробуйте ответ, как было предложено, который сгенерирует уникальный идентификатор для элемента td

Pranay Rana 17.07.2019 07:43
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
6
466
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

попробуйте, как показано ниже

let arr = [1,2,3,4];


<tr *ngFor = "let classroom of schoolReportData ; let i = index">
  <td *ngFor = "let a of arr;" id = "{{ 'pieChartDiv'+a }}"></td>
</tr>           

потому что, если вы поставите id = "{{ 'pieChartDiv'+(i+1) }}", он должен генерировать один и тот же идентификатор для всех элементов td.

Я не могу применить цикл к td, потому что я показываю ответ API в таблице. Становится так сложно получить эти данные в цикле.

Neeraj 17.07.2019 07:45

@Neeraj - если вы можете поделиться более подробной информацией, например, что такое ответ или структура объекта, я могу больше помочь в этом

Pranay Rana 17.07.2019 07:51

@PranayRana. Я действительно благодарю вас за вашу помощь, но уловка Дхавала Гохеля сработала для меня.

Neeraj 17.07.2019 07:54

@Neeraj - добро пожаловать в следующий раз, когда лучше предоставить больше контекста, поэтому будет полезно дать хорошее решение.

Pranay Rana 17.07.2019 08:42

Таким образом, вы можете сгенерировать его.

<table>
<tr *ngFor = "let classroom of schoolReportData">
  <td *ngFor = "let a of [0,1,2,3,4,5]" id = "{{ 'pieChartDiv'+a }}"></td> 
</tr>  
</table>      
Ответ принят как подходящий

Привет. Попробуйте так: с именем столбца + индексом цикла вы можете создать уникальный идентификатор.

<tr *ngFor = "let classroom of schoolReportData ; let i = index">
  <td id = "{{ classroom.field1 + '_'+ i }}"></td>
  <td id = "{{ classroom.field2 + '_'+ i }}"></td>
  <td id = "{{ classroom.field3 + '_'+ i }}"></td>
  <td id = "{{ classroom.field4 + '_'+ i }}"></td>
</tr>

Другие вопросы по теме