Я собираюсь разделить ответ на две части.Первая часть - это то, как я начал бы создавать сетку данных, которая была бы конфигурируемой , как описано в вопросе.Вторая часть - мое мнение об использовании jQuery с Angular и изучении Angular в целом.
Часть 1
Таблица ясности является декларативной.Это означает, что вы объявляете только то, что вам нужно для вашего варианта использования.Например, если вам нужен нижний колонтитул или фильтр, вы добавляете нижний колонтитул или фильтр, как описано в документации, а сетка данных позаботится обо всем остальном.
В вашем конкретном случае, кажется, вам нужна модель для установки столбцаwidths, поэтому я бы использовал встроенную привязку, которую обеспечивает angular, объявив привязку к свойству собственного стиля для ширины, например:
<clr-dg-column [style.width.px]="indexLookup('id')">ID</clr-dg-column>
Обратите внимание на скобки вокруг style.width.px ... который указывает Angular связываться со значением, предоставленным функцией indexLookup
.Функция поиска просто уменьшает columnModel, как указано выше, для предоставленного значения индекса.
Вот простой StackBlitz, показывающий документ для предоставленного вами описания / кода: https://stackblitz.com/edit/clarity-dark-theme-v013-zxh5ks
Часть 2
IMO - вы бы помогли себе большев конечном итоге, сосредоточившись только на Angular.По моему опыту с приложениями AngularJS, jQuery был причиной плохого опыта разработчиков.Я думаю, что это все еще относится к приложениям, созданным с помощью Angular.Был крайне сомнительный вопрос SO о мышлении в AngularJS, и я полагаю, что многое из написанного автором по-прежнему применимо к Angular, даже если семантика Angular и AngularJS различна.
Существуетмногое понять в современной угловой структуре.ИМО, я бы сосредоточился на небольших легко усваиваемых частях и освоил их, прежде чем пытаться добавить другие модули или библиотеки для решения проблемы.Например, вот три области, на которых вы могли бы сосредоточиться, чтобы расширить знания некоторых основных вещей, предоставляемых Angular:
- Привязка данных : что я могу привязать в компоненте или HTMLElement?Как это работает с
@Inputs
и @Outputs
?Каков эффект привязки к динамическому значению и что происходит при изменении значения? @Inputs
и @Outputs
: что это такое?Почему вы хотите их использовать? - Жизненный цикл компонентов : Какие имеются крючки жизненного цикла?Когда они вызваны и почему ?Каковы некоторые распространенные случаи использования для привязки к одному из хуков жизненного цикла?
Я не знаю, прошли ли вы через Angular tutorial , но он получил некоторые ответыкусками размером в укус, которые легко перевариваются за один или два сеанса.
Когда я впервые начал применять свои знания AngularJS к Angular, сначала документы казались неприступными.Я нашел, что стоит потратить время (часто) вернуться к шпаргалке и Основам / Компонентам и шаблонам и перечитать содержимое, поскольку я все больше и больше работал с фреймворкоми нужно было использовать больше вещей, которые он предоставляет.Когда я впервые начал работать с Angular, я делал это несколько раз в неделю, поскольку это помогло мне стать продуктивным.
Надеемся, что POC stackblitz поможет вам понять, как вы используетеcase (динамическая установка ширины столбцов для сетки данных Clarity) может быть выполнена без jQuery.Наконец, я надеюсь, что мой опыт изучения Angular docs поможет вам найти лучший способ изучения фреймворка.