Та я так и подумал, что нужен компонент что принимает имя компонента, что нужно отрисовать, и по свич кейсу рисует, или можно обойтись без свич кейса?

|
Содержание:
ребят, возможно в ангуляр отрисовать компонент таким способом?
Та я так и подумал, что нужен компонент что принимает имя компонента, что нужно отрисовать, и по свич кейсу рисует, или можно обойтись без свич кейса?
Допустим ваш кейс подходит, а если дизайн будет требовать много кастомизации?
Вопрос, как динамически вычислять путь к которому цепляется модуль?
А как вызывать функции start и stop дочернего компонента из родительского?
мб кнопки в дочернем и разместить?
У кого нибудь были проблемы с производительностью Jest в проекте?
А вы рендерите все дерево компонентов или мокаете детей?
Безопасно ли писать в Firestore напрямую из фронт-енда?
Поскольку Firebase используется как BaaS, нормально ли, что мы раскрываем бизнес-логику во фронт-енде?
Во-первых, Почему нет?
Ну потому что компонент привязан к разметке, какой толк от компонента в сервисе, если компонента нет в разметке?
Сервису зачем про компонент знать?
Ну может пример есть конкретный?
waterplea 2022-07-02 17:38:25
john_babon 2022-07-02 17:37:22
а каким образом можно по масиву отрисовать елемент, и прокинуть в него пропс

Пропс прокидывать из коробки через DI и кастомный инжектор:
https://angular.io/api/common/NgComponentOutlet

john_babon 2022-07-02 17:39:02
waterplea 2022-07-02 17:38:25
Пропс прокидывать из коробки через DI и кастомный инжектор:
https://angular.io/api/common/NgComponentOutlet

окей, иду смотртеть, спасибо

waterplea 2022-07-02 17:39:51
john_babon 2022-07-02 17:39:02
окей, иду смотртеть, спасибо

Не из коробки — через одну из библиотек:
https://github.com/IndigoSoft/ngxd
https://github.com/Tinkoff/ng-polymorpheus

GitHub — IndigoSoft/ngxd: ✨🦊 NgComponentOutlet Data-Binding Full Lifecycle = NgxComponentOutlet for Angular 7, 8, 9, 10, 11, 12, 13 GitHub
✨🦊 NgComponentOutlet Data-Binding Full Lifecycle = NgxComponentOutlet for Angular 7, 8, 9, 10, 11, 12, 13 — GitHub — IndigoSoft/ngxd: ✨🦊 NgComponentOutlet Data-Binding Full Lifecycle = Ngx…
john_babon 2022-07-02 17:41:03
спасибо, отпишусь когда сделаю
roni_droni 2022-07-02 20:25:19
john_babon 2022-07-02 17:33:59
ребят, возможно в ангуляр отрисовать компонент таким способом? если я делаю так, то на странице просто строчка

В Ангуляр доке есть пример как делать динамические формы, тебе надо создать компонент фабрику типо

thenaim 2022-07-02 21:15:40
roni_droni 2022-07-02 20:25:19
В Ангуляр доке есть пример как делать динамические формы, тебе надо создать компонент фабрику типо

factory pattern)

marishkaa1997 2022-07-02 21:49:26
Привет, ребята) помогите пожалуйста, как установить правильно модуль star-rating, все время ошибку выдает
marishkaa1997 2022-07-02 22:10:12
Прошу простить заранее, я новичок🤷‍♀
john_babon 2022-07-02 22:15:37
roni_droni 2022-07-02 20:25:19
В Ангуляр доке есть пример как делать динамические формы, тебе надо создать компонент фабрику типо

Та я так и подумал, что нужен компонент что принимает имя компонента, что нужно отрисовать, и по свич кейсу рисует, или можно обойтись без свич кейса? Как написали ниже, factory pattern

roni_droni 2022-07-02 22:17:46
john_babon 2022-07-02 22:15:37
Та я так и подумал, что нужен компонент что принимает имя компонента, что нужно отрисовать, и по свич кейсу рисует, или можно обойтись без свич кейса? Как написали ниже, factory pattern

Это как раз свич кейсом можно, я других вариантов не встречал

roni_droni 2022-07-02 22:19:18
john_babon 2022-07-02 22:15:37
Та я так и подумал, что нужен компонент что принимает имя компонента, что нужно отрисовать, и по свич кейсу рисует, или можно обойтись без свич кейса? Как написали ниже, factory pattern

Можно через директиву еще

john_babon 2022-07-02 22:46:17
Окей хорошо, в принципе у меня только 5 компонентов, поетому свич кейс устроит, спасибо ребят
maximeLyakhov 2022-07-02 23:27:10
кто пользовался formly? как ощущения?
kernokus 2022-07-03 07:51:00
maximeLyakhov 2022-07-02 23:27:10
кто пользовался formly? как ощущения?

В принципе неплохо, если запариться и сделать свои конфиги. Но нужна версия ангуляра высокая, так как не всё фичи доступны из под 9,например. На одном из проектов столкнулись с тем что материал хинтов нет на 9 версии. Пришлось форкать

sergei_dev 2022-07-03 08:25:32
maximeLyakhov 2022-07-02 23:27:10
кто пользовался formly? как ощущения?

Смотря для каких целей

maximeLyakhov 2022-07-03 10:10:03
sergei_dev 2022-07-03 08:25:32
Смотря для каких целей

генерировать формы из конфигов)

oskaar_1 2022-07-03 11:50:17
angular_ru-570524.jpg
https://parg.co/UUdY
thenaim 2022-07-03 12:32:22
maximeLyakhov 2022-07-03 10:10:03
генерировать формы из конфигов)

Допустим ваш кейс подходит, а если дизайн будет требовать много кастомизации? Знаю, что там есть переопределение полей (компонентов), но оно вам надо? Лично мое мнение.

mishka_klkv 2022-07-03 13:45:30
saidov 2022-06-30 14:25:32
Создайте timer как компонент, забайндите свои эти функции как event emitter’ы, или может сервис сделаете. А часть с inner html можно обернуть как ngIf

Всем привет, пару дней назад задавал вопрос по таймеру, я там какую-то левую либу использовал, мне посоветовали на rxjs переписать. Я переписал, остался только один вопрос. Таймер — это отдельный дочерний компонент, как сделать его onPush? Пробовал по разному, когда добавляю onPush секунды перестают тикать, даже когда detectChanges вызываю. Ну и если я где-то какую-нибудь дичь написал, буду рад замечаниям, только начинаю разбираться с rxjs 🙂
код на StackBlitz

Angular Ivy (forked) — StackBlitzStackblitz
A angular-cli project based on @angular/animations, @angular/compiler, @angular/core, @angular/common, @angular/platform-browser-dynamic, @angular/forms, @angular/platform-browser, rxjs, tslib, zone.js and @angular/router.
zzo0m 2022-07-03 14:07:53
Всем привет, коллеги,
может кто-то делал такую штуку и может подсказать.

Компонент ссылка на пользователя <user-link [user]=»user»>

По умолчанию ведет на роут /users/:userId

Хочу для некоторых роутов переопределить ссылку, например если это /users/tree роут, хочу чтобы при клике переходил в /users/tree/:userId

Модуль с роутом /users/tree может цеплятся может куда-нибудь внутрь, например /dashboard/users/tree, соответственно корень относительно, которого нужно “прыгать” неизвестен.

Пытаюсь добавить provider, в котором читаю ActivatedRoute, и генерю базу для ссылки в соответсвии с ним, если вешаю на компонент — работает, как ожидаются, для модуля нет:

«`
providers: [
provideDefaultOptionsForEntityClassFormFieldLink()
],
«`

«`
export function provideDefaultOptionsForUserFormFieldLink(params?: DefaultOptionsFactoryParams): FactoryProvider {
const defaultParams = { relativePath: ‘./’, linkPrefix: » };
const { relativePath, linkPrefix, linkPostfix, target } = { …defaultParams, …params };

return {
provide: DEFAULT_OPTIONS,
deps: [ActivatedRoute, Router],
useFactory: (activatedRoute: ActivatedRoute, router: Router): DefaultOptions => {
const urlTree = router.createUrlTree([relativePath], { relativeTo: activatedRoute });
const activeRoutePath = router.serializeUrl(urlTree);

return {
linkPrefix: activeRoutePath linkPrefix,
linkPostfix,
target
};
},
}
}
«`

Вопрос, как динамически вычислять путь к которому цепляется модуль? Хочется конфигурить не компонент, а модуль, выглядит красивее 🙂

maximeLyakhov 2022-07-03 14:23:04
mishka_klkv 2022-07-03 13:45:30
Всем привет, пару дней назад задавал вопрос по таймеру, я там какую-то левую либу использовал, мне посоветовали на rxjs переписать. Я переписал, остался только один вопрос. Таймер — это отдельный дочерний компонент, как сделать его onPush? Пробовал по разному, когда добавляю onPush секунды перестают тикать, даже когда detectChanges вызываю. Ну и если я где-то какую-нибудь дичь написал, буду рад замечаниям, только начинаю разбираться с rxjs 🙂
код на StackBlitz

@ViewChild(TimerComponent) myTimer: TimerComponent = new TimerComponent();

ViewChild это ссылка на уже присутствующий элемент. его не надо инстанциировать

mishka_klkv 2022-07-03 14:27:32
maximeLyakhov 2022-07-03 14:23:04
@ViewChild(TimerComponent) myTimer: TimerComponent = new TimerComponent();

ViewChild это ссылка на уже присутствующий элемент. его не надо инстанциировать

А как вызывать функции start и stop дочернего компонента из родительского?
Я нашел именно такой способ

maximeLyakhov 2022-07-03 14:27:57
мб кнопки в дочернем и разместить?
maximeLyakhov 2022-07-03 14:28:21
сейчас кровь с глаз вытру, поковыряю
mishka_klkv 2022-07-03 14:41:35
maximeLyakhov 2022-07-03 14:27:57
мб кнопки в дочернем и разместить?

Я подумал, что будет более универсально, если в компоненте таймера будет минимум всего, то есть только само время, а остальное добавляется по желанию

maximeLyakhov 2022-07-03 14:49:32
это можно через инпуты реализовать
sergei_dev 2022-07-03 15:43:01
Добрый день. У кого нибудь были проблемы с производительностью Jest в проекте?
sergei_dev 2022-07-03 15:44:31
лично мне удобно использовать jest по месту из IDE так как он быстро инициализируется, но когда дело доходит до тестирования всего приложения, все происходит на порядки медленнее чем с Jasmine.
im_anime 2022-07-03 15:47:16
sergei_dev 2022-07-03 15:43:01
Добрый день. У кого нибудь были проблемы с производительностью Jest в проекте?

jest сам по себе не ставит производительность на первое место, как раз по этой причине люди написанные на rust подобные вещи хотят юзать

wild_punk 2022-07-03 15:59:18
Тоже интересует вопрос перфоманса jest на CI. Проект на nx, все разбито на фичи и либы, тесты ранятся параллельно, но время CI иногда растягивается на несколько часов
mtvspec 2022-07-03 16:29:58
В чем может быть дело, при переходе на отдельный lazy загружаемый роут почему то не все стили приходят, только после обновления этой странички прилетают
chat_du_cheshire 2022-07-03 17:04:25
wild_punk 2022-07-03 15:59:18
Тоже интересует вопрос перфоманса jest на CI. Проект на nx, все разбито на фичи и либы, тесты ранятся параллельно, но время CI иногда растягивается на несколько часов

А вы рендерите все дерево компонентов или мокаете детей?

wild_punk 2022-07-03 17:09:40
chat_du_cheshire 2022-07-03 17:04:25
А вы рендерите все дерево компонентов или мокаете детей?

Хороший поинт, в некоторых местах юзается MockComponent из какой-то либы, но уверен что только в некоторых, проект довольно большой. Спасибо за наводку

chat_du_cheshire 2022-07-03 17:12:58
wild_punk 2022-07-03 17:09:40
Хороший поинт, в некоторых местах юзается MockComponent из какой-то либы, но уверен что только в некоторых, проект довольно большой. Спасибо за наводку

Когда рендерятся контейнеры это довольно много ресурсов кушается. Если верить книжке по тесту ангуляра детишек лучше мокать.

chat_du_cheshire 2022-07-03 17:13:41
Есть вроде ng-mocks либа, она позволяет промокать все сущности ангуляра
wild_punk 2022-07-03 17:16:04
chat_du_cheshire 2022-07-03 17:13:41
Есть вроде ng-mocks либа, она позволяет промокать все сущности ангуляра

Ага, имел ввиду эту либу) спасибо, надо более обильно ее применить

chat_du_cheshire 2022-07-03 17:17:23
wild_punk 2022-07-03 17:16:04
Ага, имел ввиду эту либу) спасибо, надо более обильно ее применить

https://testing-angular.com/ тут много разных штук описано

Testing Angular – A Guide to Robust Angular Applications.Testing-Angular
Unit, integration and end-to-end tests for Angular web applications. Free online book and e-book.
hackp0int 2022-07-03 18:15:36
ifrantsevskyi 2022-07-02 16:18:33
Всем привет!

Я создаю FinTech-приложение с Firebase как BaaS, и у меня есть следующие вопросы. Буду признателен за любую помощь.

1. Безопасно ли писать в Firestore напрямую из фронт-енда? Я знаю, что могу настроить security rules, ограничивающие пути, по которым каждый пользователь может писать. Но когда пользователь создается после входа в Google, я также хочу создать документ в коллекции users в Firestore, устанавливая начальный баланс пользователя, реферальный код и т. д., поэтому возникает вопрос: безопасно ли записывать такие данные из фронтендf? Пользователи не могут как-то модифицировать скрипты для изменения значения начального баланса?
2. Поскольку Firebase используется как BaaS, нормально ли, что мы раскрываем бизнес-логику во фронт-енде?

Заранее спасибо.

Вообще такие процессы должны происходить на уровне бд и сервисов которые даже не имеют внешнего api. Желательно и использовать какие-то vault сервисы для хранения ключей.

dopusteam 2022-07-03 19:05:23
ifrantsevskyi 2022-07-02 16:18:33
Всем привет!

Я создаю FinTech-приложение с Firebase как BaaS, и у меня есть следующие вопросы. Буду признателен за любую помощь.

1. Безопасно ли писать в Firestore напрямую из фронт-енда? Я знаю, что могу настроить security rules, ограничивающие пути, по которым каждый пользователь может писать. Но когда пользователь создается после входа в Google, я также хочу создать документ в коллекции users в Firestore, устанавливая начальный баланс пользователя, реферальный код и т. д., поэтому возникает вопрос: безопасно ли записывать такие данные из фронтендf? Пользователи не могут как-то модифицировать скрипты для изменения значения начального баланса?
2. Поскольку Firebase используется как BaaS, нормально ли, что мы раскрываем бизнес-логику во фронт-енде?

Заранее спасибо.

С фронта делать небезопасно ничего. Делайте всё через бэк

KiromEkexity 2022-07-03 20:55:36
Почему нельзя зарегистрировать компонент в DI контейнере Ангуляра для доступа к нему из сервиса?
waterplea 2022-07-03 20:56:13
KiromEkexity 2022-07-03 20:55:36
Почему нельзя зарегистрировать компонент в DI контейнере Ангуляра для доступа к нему из сервиса?

Роман Седов & Александр Инкин | Workshop | DI: две буквы, безграничные возможности.YouTube
В Angular очень мощный механизм Dependency Injection. Давайте пошагово разберемся, что он из себя представляет, чем полезен и какими возможностями обладает. Посмотрим несколько интересных примеров использования, дадим практические советы и ответим на все ваши вопросы по DI.

Twitter Ромы: https://twitter.com/marsibarsi
Twitter Саши: https://twitter.com/Waterplea
Слайды: https://docs.google.com/presentation/d/1nTgNUlHJOmYq-lbMROWQGkEHq74FV-Uoq86Nqo7QZ0Q/edit?usp=sharing

Полезные ссылки:
Больше выступлений DevFest Russia 2021 на сайте: https://gdg-russia.com/
Канал GDG Russia в Telegram: https://t.me/gdgrussia
Чат GDG Russia в Telegram: https://t.me/gdgrussiachat
Больше о программах Google Developers: https://developers.google.com/community
Присоединяйтесь!

dopusteam 2022-07-03 20:57:11
KiromEkexity 2022-07-03 20:55:36
Почему нельзя зарегистрировать компонент в DI контейнере Ангуляра для доступа к нему из сервиса?

А зачем? Оо

waterplea 2022-07-03 21:01:29
dopusteam 2022-07-03 20:57:11
А зачем? Оо

Ну в служебных сервисах в директивах вполне можно, для каких-нибудь конструкций типа таблицы или tree view в тайге, к примеру. Просто надо понимать как работает DI, что там за контейнеры и какова иерархия.

KiromEkexity 2022-07-03 21:02:43
dopusteam 2022-07-03 20:57:11
А зачем? Оо

Во-первых, Почему нет? Раньше я полагаю такая возможность была, но сейчас её нет либо не так сильно распространена.

https://youtu.be/wi3wPzReKZQ на 14:20 докладчик это использует для соответствия правилу SRP из SOLID

S.O.L.I.D-ый JavaScriptYouTube
MoscowJS в Badoo (http://moscowjs.ru/)

«S.O.L.I.D-ый JavaScript», Алексей Охрименко (IPONWEB)

S.O.L.I.D — что значит сочетание этих магических 5 букв? Как автор MVC проектирует свои приложения? Как научиться проектировать свое приложение и не отрастить бороду? Где брать всю эту информацию и что учить? Об этом и многом другом вы узнаете из этого доклада.

http://www.slideshare.net/BadooDev/solid-javascript

waterplea 2022-07-03 21:02:48
Если тебе хочется совсем в глобальный инжектор засунуть какой-нибудь синглтон компонент — тоже можно, но неидиоматично, так как DI должен быть минимально подвержен гонкам.
dopusteam 2022-07-03 21:02:52
waterplea 2022-07-03 21:01:29
Ну в служебных сервисах в директивах вполне можно, для каких-нибудь конструкций типа таблицы или tree view в тайге, к примеру. Просто надо понимать как работает DI, что там за контейнеры и какова иерархия.

А не «правильнее» ли, чтоб компонент при ините (например) как то триггерил сервис, типа «вот он я», а при уничтожении тригеррился, что он уничтожен?

dopusteam 2022-07-03 21:03:21
KiromEkexity 2022-07-03 21:02:43
Во-первых, Почему нет? Раньше я полагаю такая возможность была, но сейчас её нет либо не так сильно распространена.

https://youtu.be/wi3wPzReKZQ на 14:20 докладчик это использует для соответствия правилу SRP из SOLID

Ну потому что компонент привязан к разметке, какой толк от компонента в сервисе, если компонента нет в разметке? Да и цикл жизненный его тогда странно выглядеть будет

KiromEkexity 2022-07-03 21:04:44
dopusteam 2022-07-03 21:03:21
Ну потому что компонент привязан к разметке, какой толк от компонента в сервисе, если компонента нет в разметке? Да и цикл жизненный его тогда странно выглядеть будет

Чтобы выносить из него бизнес логику

dopusteam 2022-07-03 21:05:37
KiromEkexity 2022-07-03 21:04:44
Чтобы выносить из него бизнес логику

Выносите в сервис. Сервису зачем про компонент знать?
Ну может пример есть конкретный?

KiromEkexity 2022-07-03 21:05:55
waterplea 2022-07-03 20:56:13
https://youtu.be/5nVKrcnIFqA

Спасибо, как раз интересуюсь, гляну

|