Size: a a a

Angular - русскоговорящее сообщество

2019 November 07

S

Smooth Operator in Angular - русскоговорящее сообщество
Артур Мудрик
директива и сервис не связаны вообще, листенер ресайза окна запускается один раз и потом куча директив и компонентов будут инжектить этот синглтон-сервис и слушать его — в задании у меня просто 1 директива, только и всего, в реальной жизни много кто слушает ресайз окна
почему это происходит в апп компоненте
источник

АМ

Артур Мудрик in Angular - русскоговорящее сообщество
outoftimer
Друзья, а помечать все переменные и методы как private/public это нормально?
я не помечаю методы вообще никак, только переменные
источник

АМ

Артур Мудрик in Angular - русскоговорящее сообщество
Smooth Operator
почему это происходит в апп компоненте
ну, там же стартуется всё приложение обычно
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Артур Мудрик
ну, там же стартуется всё приложение обычно
а других мест нет?
источник

АМ

Артур Мудрик in Angular - русскоговорящее сообщество
Smooth Operator
а других мест нет?
например?
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Артур Мудрик
например?
может начать слушать когда в этом необходимость есть?
источник

АМ

Артур Мудрик in Angular - русскоговорящее сообщество
Smooth Operator
может начать слушать когда в этом необходимость есть?
можно и так, но вот тут как раз есть необходимость слушать 🙂
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Артур Мудрик
можно и так, но вот тут как раз есть необходимость слушать 🙂
нету
источник

АМ

Артур Мудрик in Angular - русскоговорящее сообщество
Smooth Operator
может начать слушать когда в этом необходимость есть?
можно потом отключать слушание же и включать в на другой странице сайта, например, где это нужно
источник

SK

Sergey Khrolenok in Angular - русскоговорящее сообщество
Артур Мудрик
ребята, а можете дать фидбек по вот этому коду — https://stackblitz.com/edit/vim8-2-resize-template-75gfsz — это было тестовое задание (я его не прошёл, всё сделано сверхгиперплохо шо пипец) — можете указать на любые недочёты и что можно переделать? Я это всё исправлю и тут покажу результат 🙂

Суть задания в том, чтобы сделать структурную директиву *ifViewportSize, которая показывает контент в зависимости от ширины вьюпорта.
сейчас мне сложно представить как использовать эту директиву отдельно от текущего кода

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

как я это вижу

пришел чувак и он хочет использовать эту фичу

подключил модуль - повесил директиву - юзает

//////////////

вот сервис этот разве нельзя в модуль тот же вынести ?
источник

АМ

Артур Мудрик in Angular - русскоговорящее сообщество
Sergey Khrolenok
сейчас мне сложно представить как использовать эту директиву отдельно от текущего кода

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

как я это вижу

пришел чувак и он хочет использовать эту фичу

подключил модуль - повесил директиву - юзает

//////////////

вот сервис этот разве нельзя в модуль тот же вынести ?
а если я удалю этот модуль, то как теперь слушать ресайз окна? Мой сервис это вообще отдельный сервис, он никак не связан с директивой, просто директива его использует — удалю директиву, сервис останется для других, кто его использует
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Артур Мудрик
ребята, а можете дать фидбек по вот этому коду — https://stackblitz.com/edit/vim8-2-resize-template-75gfsz — это было тестовое задание (я его не прошёл, всё сделано сверхгиперплохо шо пипец) — можете указать на любые недочёты и что можно переделать? Я это всё исправлю и тут покажу результат 🙂

Суть задания в том, чтобы сделать структурную директиву *ifViewportSize, которая показывает контент в зависимости от ширины вьюпорта.
> unsubscriber = new Subject()
если подписка произойдет после эмита в нем, то будет утечка
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Smooth Operator
конфиг провайдится по строковому литералу, который даже в переменную не вынесен
инжектится опциональный конфиг, не помечен что он опциональный
источник

SK

Sergey Khrolenok in Angular - русскоговорящее сообщество
+
источник

SK

Sergey Khrolenok in Angular - русскоговорящее сообщество
вот плюс кстати
источник

АМ

Артур Мудрик in Angular - русскоговорящее сообщество
Smooth Operator
инжектится опциональный конфиг, не помечен что он опциональный
опа
источник

SK

Sergey Khrolenok in Angular - русскоговорящее сообщество
пускай будет возможность перенастроить это отдельными конфигами сервисами
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Артур Мудрик
ребята, а можете дать фидбек по вот этому коду — https://stackblitz.com/edit/vim8-2-resize-template-75gfsz — это было тестовое задание (я его не прошёл, всё сделано сверхгиперплохо шо пипец) — можете указать на любые недочёты и что можно переделать? Я это всё исправлю и тут покажу результат 🙂

Суть задания в том, чтобы сделать структурную директиву *ifViewportSize, которая показывает контент в зависимости от ширины вьюпорта.
> listenResize
нет проверки что уже слушает
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
> fromEvent(window, 'resize').pipe(
     debounceTime(delay),
     startWith(window),

startWith(window) ? чего
источник

АМ

Артур Мудрик in Angular - русскоговорящее сообщество
Smooth Operator
> fromEvent(window, 'resize').pipe(
     debounceTime(delay),
     startWith(window),

startWith(window) ? чего
ну, чтобы сразу при подписке сработал коллбек
источник