Size: a a a

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

2020 March 19

S

Smooth Operator in Angular - русскоговорящее сообщество
Slava Popenko
Привет!) такой вопрос, есть объект,
obj = {
  id:””,
  files: [{...},{...}]
}  
И files передаю по одному с помощью *ngFor через инпут в дочерние компоненты.

И получается, что в родительском компоненте в переменной obj вижу все изменения, которые были в дочерних компонентах (ссылка передалась на оbj).

Так вот, нормальная практика, если использовать obj в родительском компоненте для обработки поля files объекта obj??

Надеюсь вы поняли мой вопрос.
не понял вопрос
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
я так понимаю, вопрос в том, можно ли files менять и из родителя и из сына
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
если только из родителя - мне кажется, норм, а и там и там - фигово
источник

SP

Slava Popenko in Angular - русскоговорящее сообщество
Yuri Katkov
я так понимаю, вопрос в том, можно ли files менять и из родителя и из сына
Менять в дочернем, а в родительском получать эти изменения
источник

GB

George B in Angular - русскоговорящее сообщество
Dmitry Teplov
в целом вариант рабочий, если условия не позволяют настроить пайплайн иначе
предполагаю, что вы делаете что-то вроде git pull && ng build
теоретически могут возникнуть проблемы из-за того, что сборка выполняется не в "нулевом" окружении, которое создаётся специально под сборку и никаких сайд-эффектов там не может быть

но не суть
заведите папку, откуда веб сервер раздаёт статику, собирайте приложение и перемещайте на место предыдущего билда

ng build && mv dist/my-app $MY_APP_DIR
Спасибо большое за подробное объяснение))
источник

SP

Slava Popenko in Angular - русскоговорящее сообщество
Slava Popenko
Привет!) такой вопрос, есть объект,
obj = {
  id:””,
  files: [{...},{...}]
}  
И files передаю по одному с помощью *ngFor через инпут в дочерние компоненты.

И получается, что в родительском компоненте в переменной obj вижу все изменения, которые были в дочерних компонентах (ссылка передалась на оbj).

Так вот, нормальная практика, если использовать obj в родительском компоненте для обработки поля files объекта obj??

Надеюсь вы поняли мой вопрос.
Именно таким способом
источник

DT

Dmitry Teplov in Angular - русскоговорящее сообщество
Yuri Katkov
кто использовал multicast в реальных проектах? Я верно понимаю, что это способ превратить observable в подобие EventSource, который тикает себе тикает событиями, а ты подключайся когда тебе нужно?
Есть подозрение, что ты тоже уже использовал)
https://github.com/ReactiveX/rxjs/blob/6.5.4/src/internal/operators/share.ts#L25
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
Slava Popenko
Менять в дочернем, а в родительском получать эти изменения
а каким способом родитель их будет получать?
источник

SP

Slava Popenko in Angular - русскоговорящее сообщество
Yuri Katkov
а каким способом родитель их будет получать?
Щас, сложно объяснить мою ситуацию
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
а, share - это частный случай multicast
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
c уже заданным жестко Subject’ом
источник

DT

Dmitry Teplov in Angular - русскоговорящее сообщество
Yuri Katkov
а, share - это частный случай multicast
это обёртка над multicast, ага
источник

DT

Dmitry Teplov in Angular - русскоговорящее сообщество
Yuri Katkov
c уже заданным жестко Subject’ом
а shareReplay это мультикаст с ReplaySubject (но могу ошибаться, глубоко не копал)
источник

YK

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

С

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

С

Светлана in Angular - русскоговорящее сообщество
рекурсивный компонент.
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Yuri Katkov
кто использовал multicast в реальных проектах? Я верно понимаю, что это способ превратить observable в подобие EventSource, который тикает себе тикает событиями, а ты подключайся когда тебе нужно?
In RxJS observables are cold, or unicast by default. These operators can make an observable hot, or multicast, allowing side-effects to be shared among multiple subscribers.
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
Светлана
как бы вы организовали навигацию скрол до нужного пункта на странице, если навигация это компонент с множественной вложенностью?
да, наверное, вставил бы в компонент некоторый элемент, который бы вызывал https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
по-моему, лучше всегда доверять такие сложные вещи самому браузеру
источник

DT

Dmitry Teplov in Angular - русскоговорящее сообщество
Smooth Operator
In RxJS observables are cold, or unicast by default. These operators can make an observable hot, or multicast, allowing side-effects to be shared among multiple subscribers.
интересно, кстати
есть разница между

subject = new Subject();
timer(100).subscribe(subject);
subject.asObservable().subscribe(...);


и

stream$ = timer(100).pipe(multicast(new Subject());
stream$.connect();
stream$.subscribe(...);
источник