*ngIf="year === activeYear"
. Типа так:activeYear = null;
log(year) {
this.activeYear = this.activeYear === year ? null : year;
}
<div class="middle-content" *ngFor="let year of years">
<a class="middle-content_top-indent" (click)="log(year)">{{ year }}</a>
<ul class="list-of-month" *ngIf="year === activeYear">
<li *ngFor="let month of months">
<span class="list-of-month__marker"></span>
<a href="#">{{ month }}</a>
</li>
</ul>
</div>
!!str.trim()
./[^\s]/.test(str)
.идея была в том, чтобы поставить регулярное выражение в паттерн валидации ангуляр формы
[pattern]="'.*\\S.*'"
. <tr *ngFor="let monitoring of filteredMonitorings "> <td style="text-align: center">{{ getTotal(filteredMonitorings) }} </td> </tr>
<tr *ngFor="let monitoring of filteredMonitorings ">
<td style="text-align: center">{{ monitoring.count }} </td>
</tr>
<tr>
<td style="text-align: center">{{ getTotal(filteredMonitorings) }} </td>
</tr>
И еще почему всегда первый элемент в опций виден как undefined ?
И если убрать ng-model то 1-ая опций undefined не будет.
If the viewValue of ngModel does not match any of the options, then the control will automatically add an "unknown" option, which it then removes when the mismatch is resolved.
<div
*ngFor="let user of users"
[class]="active === user ? 'active' : ''"
(click)="active = user"
>
Делаю вроде все по документации ангулар!
import { Injectable } from '@angular/compiler/src/core';
import { Injectable } from '@angular/core';
this.renderer.createElement('svg');
this.renderer.createElement('svg', 'svg');
this.renderer.createElement('circle');
this.renderer.createElement('circle', 'svg');
Мне этот механизм не понятен.
Как это можно понять, это документированная возможность?
Есть ли причины так не делать?