@Directive({
selector: 'textarea[appText]'
})
export class TextDirective {
@Output() public hasScrollBar = new EventEmitter<boolean>();
constructor(private readonly elRef: ElementRef<HTMLTextAreaElement>) {}
@HostListener('change')
@HostListener('input')
public changes() {
const elem = this.elRef.nativeElement;
this.hasScrollBar.emit(elem.clientHeight < elem.scrollHeight);
}
}
<textarea appText (hasScrollBar)="print($event)"></textarea>
import { interval } from 'rxjs';
import { switchMap } from 'rxjs/operators';
const requests$ = interval(300).pipe(
switchMap(() => http.get('path'))
)
url: String = '';
ngOnInit() {
this.Preview.url
.subscribe(new_url => this.url = new_url);
}
public previewUrl$: Observable<string>
ngOnInit() {
this.previewUrl$ = this.Preview.url
}
<div class="preview" *ngIf="(previewUrl$ | async) as url">
<img class="preview__img" [src]="url">
</div>
dataTasks: any[];
, но ничего ему не присвоили, оно равно undefined. Можно сделать так dataTasks: any[] = new Array();
. Т.е. чтобы до того момента, пока данные не будут получены - там был массив а не undefined. я хотел бы чтобы pipe выводил их как целые. То есть чтобы пользователь видел не дробное число, а целое, например округлённое.
Важно чтобы при этом они сами по себе оставались дробными(для вычислений, которые будут позже производиться в компоненте)
Но если я создам файл webpack.config.js и заполню одну из секций(например Output), то будет ли это означать, что Output будет браться из webpack.config.js, а остальные значения из того же неведомого конфига?
<main>
<section>
<child-component></child-component>
</section>
<another-child-component></another-child-component>
</main>
switchMap((token) => {
console.log(token)
const headers = new HttpHeaders().set(
'Authorization',
'bearer ' + token.id_token
);
return this.httpClient.get('http://143.167.112.46:3001/api/protected/user-info', {headers}).pipe(
map(user => {
return { user, token }
})
)
}),
mergeMap({ user, token }) => {
console.log(user, token)
this.router.navigate(['/']);
return [
{
type: AuthActions.SIGNIN
},
{
type: AuthActions.SET_TOKEN,
payload: token
}
];
});
this.httpClient.get('http://143.167.112.46:3001/api/protected/user-info', {headers})
и все остальные запросы к серверу в сервис. trigger('fadeInOut', [
transition(':enter', [style({
width: '59px',
border: 'none',
}),
animate(3000, style({
width: '*',
border: 'solid 1px #ebebeb',
}))],
),
transition(':leave', [
animate(3000, style({
width: '59px',
border: 'none',
}))],
),
])