#angular #gridster #angular-gridster2
Вопрос:
Я хотел бы запустить функцию в своем компоненте виджета после изменения размера элемента сетки. Как мне это сделать? Я знаю, что у Gridster2 есть обратный вызов событий после завершения изменения размера, но как я могу использовать это для запуска чего-либо в моем компоненте виджета?
В моем компоновочном компоненте:
export class LayoutComponent implements AfterViewInit {
options: GridsterConfig = {
// yada yada
itemResizeCallback: (x, y) => this.itemResized(x, y)
};
layout: GridsterItem[] = [];
constructor() { }
ngAfterViewInit(): void {
}
itemResized(x: any, y: any) {
// How do I call the function doSomething() in PieWidgetComponent here?
}
async addItem() {
this.layout.push({ x: 0, y: 0, cols: 1, rows: 1, widgetComponent: PieWidgetComponent });
}
}
<gridster [options]="options" #myGrid>
<gridster-item *ngFor="let item of layout" [item]="item">
<ng-container *ngComponentOutlet="item.widgetComponent"></ng-container>
</gridster-item>
</gridster>
В моем виджеткомпоненте:
export class PieWidgetComponent implements OnInit {
constructor() {
}
ngOnInit(): void {
}
public doSomething(): void {
// How do I trigger this from LayoutComponent's after item has been resized?
console.log("ALOHA");
}
}
<div style="text-align:center; background-color: aquamarine;">
My widget
</div>
Комментарии:
1. приведите здесь правильную структуру вашего компонента
2. @GaurangDhorda Отредактировал мой код. Есть идеи?
3. stackblitz.com/edit/… это то, что вы ищете ? @Фарид
4. Не совсем. Проблема в том, как мне получить точный экземпляр компонента внутри GridsterItem, размер которого изменен?
5. где вы разместили компонент виджета ?