Size: a a a

2020 August 17

AS

Alex S in Angular Kyiv
nglet??
источник

Sergey Фrolov in Angular Kyiv
Тебе же нужен контекст, где эта переменная запишется
источник

AS

Alex S in Angular Kyiv
оке
как синтаксис в нгиф?
*ngIf=“(data$ | async) as anotherDataVar” ?
источник

Sergey Фrolov in Angular Kyiv
Это из componentStore и rx-angular/templates
источник

Sergey Фrolov in Angular Kyiv
Alex S
оке
как синтаксис в нгиф?
*ngIf=“(data$ | async) as anotherDataVar” ?
Да
источник

AS

Alex S in Angular Kyiv
Ля. Ты как всегда топ. Спасибо!)
источник

KN

Konstantin Nosov in Angular Kyiv
Alex S
пипол, запамятовал. Где-то видел как-то раз и ща хочу заюзать, а не помню синтаксис 😄
фишка в том, чтобы было что-то вроде

<some-elem [data]=“(data$ | async) as anotherDataVar” />

тип чтоб постоянно не писать data$ | async, вводится темплейт переменная anotherDataVar

кто-то помнит как оно правильно пишется? :D
<mat-sidenav-container  *ngIf="{isHandset: isHandset$ | async, isAuthorized: isAuthorized$ | async}; let context;">
...
  <mat-nav-list *ngIf="context.isAuthorized && !context.isHandset">
лучше передавать не в переменную напрямую, чтобы не отхватить проблему с falsy undefined и несколькими переменными, а в словарик, как в примере выше context в котором может быть много разных пайпов заресолвлено сразу
источник

AS

Alex S in Angular Kyiv
Konstantin Nosov
<mat-sidenav-container  *ngIf="{isHandset: isHandset$ | async, isAuthorized: isAuthorized$ | async}; let context;">
...
  <mat-nav-list *ngIf="context.isAuthorized && !context.isHandset">
лучше передавать не в переменную напрямую, чтобы не отхватить проблему с falsy undefined и несколькими переменными, а в словарик, как в примере выше context в котором может быть много разных пайпов заресолвлено сразу
ууу щит
спасибо)
источник

KN

Konstantin Nosov in Angular Kyiv
Alex S
ууу щит
спасибо)
тут на самом деле спасибо @tia777 с этим хаком
источник

N

Nik in Angular Kyiv
Konstantin Nosov
<mat-sidenav-container  *ngIf="{isHandset: isHandset$ | async, isAuthorized: isAuthorized$ | async}; let context;">
...
  <mat-nav-list *ngIf="context.isAuthorized && !context.isHandset">
лучше передавать не в переменную напрямую, чтобы не отхватить проблему с falsy undefined и несколькими переменными, а в словарик, как в примере выше context в котором может быть много разных пайпов заресолвлено сразу
хак на $100 👍
источник

AO

Alex Okrushko in Angular Kyiv
Konstantin Nosov
<mat-sidenav-container  *ngIf="{isHandset: isHandset$ | async, isAuthorized: isAuthorized$ | async}; let context;">
...
  <mat-nav-list *ngIf="context.isAuthorized && !context.isHandset">
лучше передавать не в переменную напрямую, чтобы не отхватить проблему с falsy undefined и несколькими переменными, а в словарик, как в примере выше context в котором может быть много разных пайпов заресолвлено сразу
а ещё интереснее формировать ViewModel до того как эта модель попадет в компонент сам - на пример передать vm$, тода просто
<mat-sidenav-container  *ngIf="vm$ | async as vm">
...
<mat-nav-list *ngIf="vm.isAuthorized && !vm.isHandset">
источник

KN

Konstantin Nosov in Angular Kyiv
можно, но тогда нужен конструктор где такой vm формировать, а так можно без конструктора обойтись :)
источник

AO

Alex Okrushko in Angular Kyiv
Konstantin Nosov
можно, но тогда нужен конструктор где такой vm формировать, а так можно без конструктора обойтись :)
тогда можно от компонента отделить бизнес логику и передать ему только то, что ему нужно. 🙂
источник

KN

Konstantin Nosov in Angular Kyiv
я *ngif классифицирую как уровень представления, и как раз предпочитаю чтобы можно было ngif и человеком который умеет верстать править большую часть отображения. Такой angularjs way когда есть scope в котором куча всего и с ним играются в шаблоне.
источник

AO

Alex Okrushko in Angular Kyiv
формирования ViewModel для компонента и шаблона - это осознание того, какие данные на самом деле ему нужны, а не куча всего для игры.
Это так же позволяет задуматься над разбитием больших компонентов на более маленькие, если ViewModel действительно начинает превращаться в огромную кучу - так сказать "колокольчики" начинают звенеть.
Но есть разные подходы - я лишь уточняю тот, который мне помогает 🙂
источник

B

Bohdan in Angular Kyiv
Alex Okrushko
формирования ViewModel для компонента и шаблона - это осознание того, какие данные на самом деле ему нужны, а не куча всего для игры.
Это так же позволяет задуматься над разбитием больших компонентов на более маленькие, если ViewModel действительно начинает превращаться в огромную кучу - так сказать "колокольчики" начинают звенеть.
Но есть разные подходы - я лишь уточняю тот, который мне помогает 🙂
А есть где это в коде глянуть, чтобы понятнее было?
источник

OP

Oleg Pavl in Angular Kyiv
Народ, такая проблема. У меня есть список сущностей с разным количеством полей в одном списке, мне нужно их вывести на экран. Одним *ngFor пробегаюсь по списку сущностей, а вторым *ngFor по списку полей, чтобы их добавить в строку. Как то можно сделать что то типа {{account.{{fieldName}}}}? Или может есть еще какие то варианты?
источник

AO

Alex Okrushko in Angular Kyiv
Bohdan
А есть где это в коде глянуть, чтобы понятнее было?
https://stackblitz.com/edit/angular-ivy-hdkz19?file=src%2Fapp%2Fpaginator.component.ts

Тут иcпользуется ComponentStore под PaginatorStore, но это не важно - можно смотреть на него как на обычный сервис.
источник

AO

Alex Okrushko in Angular Kyiv
Oleg Pavl
Народ, такая проблема. У меня есть список сущностей с разным количеством полей в одном списке, мне нужно их вывести на экран. Одним *ngFor пробегаюсь по списку сущностей, а вторым *ngFor по списку полей, чтобы их добавить в строку. Как то можно сделать что то типа {{account.{{fieldName}}}}? Или может есть еще какие то варианты?
если  надо использовать account (я так понимаю, что именно так названа template variable из первого ngFor), то вот так: {{account[fieldName]}}
источник

OP

Oleg Pavl in Angular Kyiv
Alex Okrushko
если  надо использовать account (я так понимаю, что именно так названа template variable из первого ngFor), то вот так: {{account[fieldName]}}
Спасибо) Работает)
источник