Size: a a a

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

2020 January 24

А

Артур in Angular - русскоговорящее сообщество
Привет. Кто подскажет, как в директиве получить данные из сервиса? https://stackblitz.com/edit/vim8-2-resize-template-h2swxh?file=app%2Fif-viewport-size%2Fif-viewport-size.directive.ts
источник

НС

Никита Середа in Angular - русскоговорящее сообщество
const service = inject().get(YOUR_SERVICE_NAME)
источник

НС

Никита Середа in Angular - русскоговорящее сообщество
import {Injector} from '@angular/core';

let injectorRef: Injector;
export const inject = (injector?: Injector): Injector => {
 if (injector) { injectorRef = injector; }
 return injectorRef;
};
источник

НС

Никита Середа in Angular - русскоговорящее сообщество
и делаем что надо с сервисом
источник

А

Артур in Angular - русскоговорящее сообщество
Никита Середа
const service = inject().get(YOUR_SERVICE_NAME)
Спасибо, но я только учусь. Что надо делать - не совсем понимаю
источник

А

Артур in Angular - русскоговорящее сообщество
...почитаю про injectorRef
источник

VV

Vladimir Verbitskiy in Angular - русскоговорящее сообщество
Никита Середа
import {Injector} from '@angular/core';

let injectorRef: Injector;
export const inject = (injector?: Injector): Injector => {
 if (injector) { injectorRef = injector; }
 return injectorRef;
};
так мы же в конструкторе его полуичьт можем, не?
источник

НС

Никита Середа in Angular - русскоговорящее сообщество
а можно без конструктора
источник

А

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

VV

Vladimir Verbitskiy in Angular - русскоговорящее сообщество
Артур
хмм... а кто пример смотрел?
я смотрел, ты через конструктор заинжектил
источник

VV

Vladimir Verbitskiy in Angular - русскоговорящее сообщество
и я не понял просто суть вопроса
источник

А

Артур in Angular - русскоговорящее сообщество
Vladimir Verbitskiy
я смотрел, ты через конструктор заинжектил
спасибо. По-диагонали можешь сказать где я ошибся?
источник

AT

Alexey Tuychiev in Angular - русскоговорящее сообщество
currentSize cделайте как Subject и из getViewportSize возвращайте this.currentSize.asObservable()
и в ngOnDestroy не правильно отписка делается, нужно ее сохранить при вызове getViewportSize() в ngOnInit и вызывать на подписке unsubscribe. В calculateCurrentSize эмитите значение this.currentSize.next('small');
источник

А

Артур in Angular - русскоговорящее сообщество
Alexey Tuychiev
currentSize cделайте как Subject и из getViewportSize возвращайте this.currentSize.asObservable()
и в ngOnDestroy не правильно отписка делается, нужно ее сохранить при вызове getViewportSize() в ngOnInit и вызывать на подписке unsubscribe. В calculateCurrentSize эмитите значение this.currentSize.next('small');
спасибо
источник

А

Артур in Angular - русскоговорящее сообщество
Alexey Tuychiev
currentSize cделайте как Subject и из getViewportSize возвращайте this.currentSize.asObservable()
и в ngOnDestroy не правильно отписка делается, нужно ее сохранить при вызове getViewportSize() в ngOnInit и вызывать на подписке unsubscribe. В calculateCurrentSize эмитите значение this.currentSize.next('small');
в ngOnDestroy нужно будет ещё и Subject завершить this.currentSize.complete() ?
источник

А

Артур in Angular - русскоговорящее сообщество
ага
источник

AT

Alexey Tuychiev in Angular - русскоговорящее сообщество
Артур
в ngOnDestroy нужно будет ещё и Subject завершить this.currentSize.complete() ?
Нет директива не управляет состоянием из сервиса, для этого мы и возвращаем Subject как Observable через asObservable
источник

AT

Alexey Tuychiev in Angular - русскоговорящее сообщество
Рассматривайте сервис как источник, а директивы просто подписываются/отписываются от него. Это не их зона ответственности завершать поток.
источник

VV

Vladimir Verbitskiy in Angular - русскоговорящее сообщество
а у меня вот такой вот вопросик
источник

VV

Vladimir Verbitskiy in Angular - русскоговорящее сообщество
кто как делает

в одном компаненте сразу все: просмотр, редактирование и создание

или вы разбиваете на два компанента: просмотр и создание\редактивароние
источник