Использую Angular 5(до этого с ангуляром не работал) не могу обратиться к функции которая находится внутри ngOninit объясните пожалуйста как это сделать. вот мой пример
app.component.ts
import {Component, OnInit} from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
objDate = Date.now();
slide1 = 'test text';
ngOnInit() {
var slides = document.querySelectorAll('.substrate .slide');
var currentSlide = 0;
var slideInterval = setInterval(nextSlide, 5000);
function nextSlide() {
goToSlide(currentSlide + 1);
}
function previousSlide() {
goToSlide(currentSlide - 1);
}
function goToSlide(n) {
slides[currentSlide].className = 'slide';
currentSlide = (n + slides.length) % slides.length;
slides[currentSlide].className = 'slide showing';
}
function next() {
alert('YoY');
nextSlide();
};
function previous() {
alert('YoY1');
previousSlide();
}
}
}
app.component.html
<div class="block-btn-name">
<div (click)="next()" class="btn btn-left"></div>
<h1 class="slide-name">{{slide1}}</h1>
<div (click)="previous()" class="btn btn-right"></div>
Чтобы функция могла использоваться в шаблоне, она должна быть методом соответствующего компонента.
Следовательно нужно сделать методами все нужные функции, например:
ngOnInit(){...}
goToSlide(n) {
slides[currentSlide].className = 'slide';
currentSlide = (n + slides.length) % slides.length;
slides[currentSlide].className = 'slide showing';
}
Для того, чтобы вызвать один метод из другого, нужно использовать ключевое слово this
:
nextSlide() {
this.goToSlide(currentSlide + 1);
}
После переделки на методы перестанет работать setInterval(nextSlide, 5000)
из-за потере контекста (подробнее в вопросе Потеря контекста вызова)
А также все переменные определенные в ngOnInit и используемые в методах, должны стать полями класса, и обращение к ним также будет через this
.
Этот код имитирует бросок 2 кубиковВ зависимости от того, что на них выпало, увеличивается height соответствующего блока
У меня в базе данных храниться дата добавления какого-либо объекта,причем,храниться она в формате UNIXПользователь видит дату в формате (День-месяц-год),...
Всем привет! Есть не разрешенный по LARAVEL, а конкретно выборка данных из БД, уже 2 дня над этой проблемой бьюсь=((( Как выбрать из БД данные за текущий...