Size: a a a

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

2020 January 26

PD

Plomipu Dmitri in Angular - русскоговорящее сообщество
спасибо. Счас позырю ))
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
А при стратегии OnPush надо как-то подсказывать ангуляру, на какие стримы обращать внимание?
Просто я сейчас выключил zone.js. У меня в шаблоне есть подписка на boolean стрим, он эмитит true, но участок шаблона, который должен при этом отображаться, не отображается

<div *ngIf="authService.isAuthenticated$ | async; then accountInfo; else authButton"></div>
источник

🧤K

🧤 Andrei Kapytau in Angular - русскоговорящее сообщество
Dilame Bowzee
А при стратегии OnPush надо как-то подсказывать ангуляру, на какие стримы обращать внимание?
Просто я сейчас выключил zone.js. У меня в шаблоне есть подписка на boolean стрим, он эмитит true, но участок шаблона, который должен при этом отображаться, не отображается

<div *ngIf="authService.isAuthenticated$ | async; then accountInfo; else authButton"></div>
Странно а зачем выключать зону?
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
🧤 Andrei Kapytau
Странно а зачем выключать зону?
А зачем она нужна, если я хочу на OnPush сделать приложение?
источник

🧤K

🧤 Andrei Kapytau in Angular - русскоговорящее сообщество
Plomipu Dmitri
Моя задача создать безопасную копию объекта, чтобы когда ты начал в нём менять свойства, которые тоже являются объектами, не изменились свойства того объекта с которого была сделана копия. Я счас передаю данные через объект в диалговое окошко ангуляра материал, которое в этой либе изначально работает через свойство data. Представим, я создаю отдельное свойство скажем
copyData
в диалоговом окошке, которому присваиваю значение
this.data
. Потом я присваиваю полученному свойству в его поле значение( ибо оно там реально существует ) скажем
copyData.name="Dima"
, а в оригинале из
data.name
у него допустим "Misha". И когда я вывожу на экран после присвоении свойства имени
this.data.name
он мне выводит
Dima
, А ТАК БЫТЬ НЕ ДОЛЖНО особенно в моём кейсе. Но у меня вопрос: если при клонировании объекта с помощью JSON-ины теряются типы объекта, то как же тогда копировать объект в тайпскрипте ??
Для такого лучше используй реактивную форму, у тебя там template driven явно
источник

🧤K

🧤 Andrei Kapytau in Angular - русскоговорящее сообщество
Dilame Bowzee
А зачем она нужна, если я хочу на OnPush сделать приложение?
А как ты считаешь происходит CD в async pipe?)
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
🧤 Andrei Kapytau
А как ты считаешь происходит CD в async pipe?)
Я всех тонкостей не знаю, но я ожидаю, что при OnPush он должен происходить когда Observable эмитит что-нибудь. Разве нет?
источник

🧤K

🧤 Andrei Kapytau in Angular - русскоговорящее сообщество
Dilame Bowzee
Я всех тонкостей не знаю, но я ожидаю, что при OnPush он должен происходить когда Observable эмитит что-нибудь. Разве нет?
источник

🧤K

🧤 Andrei Kapytau in Angular - русскоговорящее сообщество
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
Спасибо за ссылку, но понятней не стало)
источник

🧤K

🧤 Andrei Kapytau in Angular - русскоговорящее сообщество
Нельзя просто выключить зону ) нужны усилия
источник

🧤K

🧤 Andrei Kapytau in Angular - русскоговорящее сообщество
Там вторая вверху ))
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
🧤 Andrei Kapytau
Нельзя просто выключить зону ) нужны усилия
Да я понимаю, я вот сейчас и пытаюсь понять, какие именно усилия нужны. Статью прочитал, но там тоже толком рецепта нет. Или вы хотите сказать, что надо вызывать tick() вручную?
источник

🧤K

🧤 Andrei Kapytau in Angular - русскоговорящее сообщество
Dilame Bowzee
Да я понимаю, я вот сейчас и пытаюсь понять, какие именно усилия нужны. Статью прочитал, но там тоже толком рецепта нет. Или вы хотите сказать, что надо вызывать tick() вручную?
Да
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
Но у ребят в интернете с RxJS без этого работает 🙁
https://netbasal.com/a-comprehensive-guide-to-angular-onpush-change-detection-strategy-5bac493074a4
источник

🧤K

🧤 Andrei Kapytau in Angular - русскоговорящее сообщество
Так Нетанел не отрубал зону)
источник

🧤K

🧤 Andrei Kapytau in Angular - русскоговорящее сообщество
Давай по-другому, как ты выключил зону?
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
🧤 Andrei Kapytau
Давай по-другому, как ты выключил зону?
Давай) Я убрал импорт из полифила, + .bootstrapModule(AppModule, { ngZone: 'noop' })
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
🧤 Andrei Kapytau
Так Нетанел не отрубал зону)
Получается можно оставить зону, но при этом использовать OnPush и получить прирост производительности?
источник

🧤K

🧤 Andrei Kapytau in Angular - русскоговорящее сообщество
Dilame Bowzee
Получается можно оставить зону, но при этом использовать OnPush и получить прирост производительности?
Да
источник