@@ -44,39 +44,45 @@ <h1>Serialization demo</h1>
4444 { x : 1 , y : 3 , id : '4' }
4545 ] ;
4646 serializedData . forEach ( ( n , i ) =>
47- n . content = `<button onClick="grid. removeWidget(this.parentNode.parentNode )">X</button><br> ${ i } <br> ${ n . content ? n . content : '' } ` ) ;
47+ n . content = `<button onClick="removeWidget(this.parentElement.parentElement )">X</button><br> ${ i } <br> ${ n . content ? n . content : '' } ` ) ;
4848 let serializedFull ;
4949
5050 // 2.x method - just saving list of widgets with content (default)
51- loadGrid = function ( ) {
51+ function loadGrid ( ) {
5252 grid . load ( serializedData , true ) ; // update things
5353 }
5454
5555 // 2.x method
56- saveGrid = function ( ) {
56+ function saveGrid ( ) {
5757 delete serializedFull ;
5858 serializedData = grid . save ( ) ;
5959 document . querySelector ( '#saved-data' ) . value = JSON . stringify ( serializedData , null , ' ' ) ;
6060 }
6161
6262 // 3.1 full method saving the grid options + children (which is recursive for nested grids)
63- saveFullGrid = function ( ) {
63+ function saveFullGrid ( ) {
6464 serializedFull = grid . save ( true , true ) ;
6565 serializedData = serializedFull . children ;
6666 document . querySelector ( '#saved-data' ) . value = JSON . stringify ( serializedFull , null , ' ' ) ;
6767 }
6868
6969 // 3.1 full method to reload from scratch - delete the grid and add it back from JSON
70- loadFullGrid = function ( ) {
70+ function loadFullGrid ( ) {
7171 if ( ! serializedFull ) return ;
7272 grid . destroy ( true ) ; // nuke everything
7373 grid = GridStack . addGrid ( document . querySelector ( '#gridCont' ) , serializedFull )
7474 }
7575
76- clearGrid = function ( ) {
76+ function clearGrid ( ) {
7777 grid . removeAll ( ) ;
7878 }
7979
80+ function removeWidget ( el ) {
81+ // TEST removing from DOM first like Angular/React/Vue would do
82+ el . remove ( ) ;
83+ grid . removeWidget ( el , false ) ;
84+ }
85+
8086 loadGrid ( ) ;
8187 </ script >
8288</ body >
0 commit comments