我有以下gridster项目并使用https://github.com/tiberiuzuld/angular-gridster2
<gridster-item [item]="myAptInfolet" class="shadow">
<app-my-appointments-infolet></app-my-appointments-infolet>
</gridster-item>
.TS
this.myAptInfolet = {cols: 1, rows: 2, y: 0, x: 4}
调整大小功能就像
test(){
this.myAptInfolet.cols = 2
this.options.api.resize()
}
但没有任何反应。控制台没有错误。请指教
答案 0 :(得分:0)
我是angular-gridster2的新手,但是我设法对我的gridster的布局进行了一些动态更改,因此我将尽力为您提供帮助。
我看不到您的“ options”属性来自何处,但是它应该是 GridsterConfig 的实例,因此.ts文件的开头应如下所示:
import { GridsterConfig, GridsterItem } from 'angular-gridster2';
options: GridsterConfig;
一旦定义了选项,就可以通过调用api的 optionsChanged 方法来刷新gridster的布局,如下所示:
test(){
this.myAptInfolet.cols = 2;
this.options.api.optionsChanged();
}
您可以参考angular-gridster2 github's来找到一个非常小巧的示例,以了解如何与项目进行动态交互并更改网格的布局:
import { GridsterConfig, GridsterItem } from 'angular-gridster2';
options: GridsterConfig;
dashboard: Array<GridsterItem>;
static itemChange(item, itemComponent) {
console.info('itemChanged', item, itemComponent);
}
static itemResize(item, itemComponent) {
console.info('itemResized', item, itemComponent);
}
ngOnInit() {
this.options = {
itemChangeCallback: AppComponent.itemChange,
itemResizeCallback: AppComponent.itemResize,
};
this.dashboard = [
{cols: 2, rows: 1, y: 0, x: 0},
{cols: 2, rows: 2, y: 0, x: 2}
];
}
changedOptions() {
this.options.api.optionsChanged();
}
removeItem(item) {
this.dashboard.splice(this.dashboard.indexOf(item), 1);
}
addItem() {
this.dashboard.push({});
}
我希望这会有所帮助。
答案 1 :(得分:0)
您没有将对调整大小的项目的引用传递到方法test()
中。根据Sebapabst0的答案,以下是一个示例StackBlitz:https://stackblitz.com/edit/angular-ivy-jjati4
答案 2 :(得分:0)
这对我有用:
import { GridsterConfig, GridsterItem } from 'angular-gridster2';
options: GridsterConfig;
dashboard: Array<GridsterItem>;
ngOnInit() {
this.options = {
itemResizeCallback: (item: GridsterItem, itemComponent: GridsterItemComponentInterface) => {
this.updateSizeOnServer(item, itemComponent);
}
};
this.dashboard = [
{cols: 2, rows: 1, y: 0, x: 0},
{cols: 2, rows: 2, y: 0, x: 2}
];
}
updateSizeOnServer(item, itemComponent) {
// call some API tu update the size
}