Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 1ee8902

Browse files
Merge pull request gridstack#3039 from adumesny/master
ng: GridstackComponent not doing event for nested
2 parents e6129de + 2048664 commit 1ee8902

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

‎angular/projects/lib/src/lib/gridstack.component.ts‎

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,23 +178,35 @@ export class GridstackComponent implements OnInit, AfterContentInit, OnDestroy {
178178
/** get all known events as easy to use Outputs for convenience */
179179
protected hookEvents(grid?: GridStack) {
180180
if (!grid) return;
181+
// nested grids don't have events in v12.1+ so skip
182+
if (grid.parentGridNode) return;
181183
grid
182-
.on('added', (event: Event, nodes: GridStackNode[]) => { this.checkEmpty(); this.addedCB.emit({event, nodes}); })
184+
.on('added', (event: Event, nodes: GridStackNode[]) => {
185+
const gridComp = (nodes[0].grid?.el as GridCompHTMLElement)._gridComp || this;
186+
gridComp.checkEmpty();
187+
this.addedCB.emit({event, nodes});
188+
})
183189
.on('change', (event: Event, nodes: GridStackNode[]) => this.changeCB.emit({event, nodes}))
184190
.on('disable', (event: Event) => this.disableCB.emit({event}))
185191
.on('drag', (event: Event, el: GridItemHTMLElement) => this.dragCB.emit({event, el}))
186192
.on('dragstart', (event: Event, el: GridItemHTMLElement) => this.dragStartCB.emit({event, el}))
187193
.on('dragstop', (event: Event, el: GridItemHTMLElement) => this.dragStopCB.emit({event, el}))
188194
.on('dropped', (event: Event, previousNode: GridStackNode, newNode: GridStackNode) => this.droppedCB.emit({event, previousNode, newNode}))
189195
.on('enable', (event: Event) => this.enableCB.emit({event}))
190-
.on('removed', (event: Event, nodes: GridStackNode[]) => { this.checkEmpty(); this.removedCB.emit({event, nodes}); })
196+
.on('removed', (event: Event, nodes: GridStackNode[]) => {
197+
const gridComp = (nodes[0].grid?.el as GridCompHTMLElement)._gridComp || this;
198+
gridComp.checkEmpty();
199+
this.removedCB.emit({event, nodes});
200+
})
191201
.on('resize', (event: Event, el: GridItemHTMLElement) => this.resizeCB.emit({event, el}))
192202
.on('resizestart', (event: Event, el: GridItemHTMLElement) => this.resizeStartCB.emit({event, el}))
193203
.on('resizestop', (event: Event, el: GridItemHTMLElement) => this.resizeStopCB.emit({event, el}))
194204
}
195205

196206
protected unhookEvents(grid?: GridStack) {
197207
if (!grid) return;
208+
// nested grids don't have events in v12.1+ so skip
209+
if (grid.parentGridNode) return;
198210
grid.off('added change disable drag dragstart dragstop dropped enable removed resize resizestart resizestop');
199211
}
200212
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /