В общем решение такое:
Создаем служебную директиву:
import {Directive, Input} from '@angular/core';
@Directive({
selector: '[scroll]'
})
export class ScrollDirective {
constructor() {
}
@Input('scroll')
set appScroll(isReady: boolean) {
if (isReady)
this.ngForCallback();
}
ngForCallback() {
$('.owl-carousel').owlCarousel({
loop: true,
margin: 10,
responsiveClass: true,
autoWidth: false,
navText: ["Предыдущий", "Следующий"],
responsive: {
0: {
items: 1,
nav: true
},
600: {
items: 3,
nav: false
},
1000: {
items: 5,
nav: true,
loop: false,
margin: 20
}
}
});
console.log('run');
}
}
И в шаблоне:
.....
<div class="owl-carousel owl-theme">
<div class="item" *ngFor="let t of test; let l=last" [scroll]="l ? true : false">
<h4>{{t?.name}}</h4>
</div>
</div>
.....
Судя по консоли ( console.log('run') ) срабатывает всего один раз...