function callMe(name, callback) {
console.log('callMe');
callback(name);
}
function myCallback(myName) {
console.log('myCallback');
console.log(myName);
}
callMe('vasya', myCallback);
myCallback
передается как аргумент в функцию callMe
callMe
в какой-то момент своей работы берет свой аргумент callback
и вызывает его, передавая ему какие хочет аргументы. Это называется обратным вызовом, а callback
тут у нас будет функцией обратного вызова, т.е. коллбэком.click
, проверяешь ссылку, если она локальная, делаешь router.navigateByUrl
иevent.preventDefault
routerLink
бесполезно вешать, шаблоны ангуляра только кажутся похожими на html, это код, который компилируется в js. А в живом html директивы не работают.[innerHTML]
В компоненте b2b-acquiring есть метод, который отправляет запрос на сервер
<table>
<tr id="weekRow">
</tr>
</table>
(() => {
const weekRow = document.getElementById('weekRow');
let date = new Date();
Array.from(Array(7), () => document.createElement('td'))
.forEach(td => {
td.textContent = date.toLocaleString('ru', {
weekday: 'short'
});
date.setDate(date.getDate() + 1);
weekRow.appendChild(td);
});
})();
Как вообще узнать что в таком месяце 28 дней, в таком 30 или 31?
/** число дней */
function daysInMonth (month, year) {
return new Date(year, month, 0).getDate();
}
/** день недели 1 числа месяца */
function getFirstDayOfMonth (month, year) {
return new Date(year, month, 1).toLocaleString('ru', { weekday: 'long' });
// если просто номер
// return new Date(year, month, 1).getDay();
}
import { Directive, TemplateRef, ViewContainerRef, OnInit, ElementRef, HostListener, Renderer2, HostBinding } from '@angular/core';
@Directive({
selector: '[appHover]',
})
export class HoverDirective implements OnInit {
content: NodeList;
constructor(
private el: ElementRef<HTMLElement>,
private renderer: Renderer2,
) { }
@HostListener('mouseenter') show() {
this.content.forEach(node => this.renderer.setStyle(node, 'display', ''));
}
@HostListener('mouseleave') hide() {
this.content.forEach(node => this.renderer.setStyle(node, 'display', 'none'));
}
ngOnInit() {
this.content = this.el.nativeElement.childNodes;
this.hide();
}
}