Hi, since upgrading to version v2013.1.619 our application is no longer able to retrieve change information.
In our scenario we only bind to the top level model changed event i.e. viewData (see sample json below). This json can be nested to several layers. This Model is dynamic and can be nested to many levels.
We are only interested in knowing which members have changed.
Previous to this release, if the value property of M53675 changed we would receive multiple change events at the top level model, one to signify that the rows property had changed and one for the value property of M53675.
Since this update we nolonger receive the event for the member change, just the rows property and there is no way of working out what caused the row change event.
The issues appears to be that when a change is bubbling up, the details of the change are lost when the passes through an ObservableArray.
We can modify our code to iterate through our model and attach a handler to the change event of each observable rows array but we would much prefer if there was an option to allow the modified property to bubble up.
Sample JSON
"viewData": {
"name": "Contact (Insured)",
"ID": "4123",
"reference": null
},
"containers": {
"C12409": {
"containerID": 12409,
"containerType": 6,
"containerName": "Container12409",
"isVisible": true,
"entityID": 419,
"entityName": "Contact",
"rowCount": 1,
"rows": [{
"instanceInfo": {
"entityID": 419,
"instanceID": -1,
"instanceStateMemberID": 2235
},
"columns": {
"M53675": {
"memberID": 53675,
"name": "Contact Type",
"value": 2,
"description": "Organisation",
"isDisabled": false,
"isMandatory": true,
"isValid": true,
"isVisible": true,
"isTargetMandatory": false,
"isChangedThisUpdate": false
},
"M53674": {
"memberID": 53674,
"name": "Domicile Country",
"value": null,
"isDisabled": false,
"isMandatory": true,
"isValid": false,
"isVisible": true,
"isTargetMandatory": false,
"isChangedThisUpdate": false
},
"M53673": {
"memberID": 53673,
"name": "Domicile State",
"value": null,
"isDisabled": true,
"isMandatory": false,
"isValid": true,
"isVisible": true,
"isTargetMandatory": false,
"isChangedThisUpdate": false
},
"M113263": {
"memberID": 113263,
"name": "Language",
"value": null,
"isDisabled": false,
"isMandatory": false,
"isValid": true,
"isVisible": true,
"isTargetMandatory": false,
"isChangedThisUpdate": false
},
"M72693": {
"memberID": 72693,
"name": "Contact Function",
"value": 2,
"code": "CO",
"description": "Company",
"isDisabled": false,
"isMandatory": false,
"isValid": true,
"isVisible": true,
"isTargetMandatory": false,
"isChangedThisUpdate": false
}
},
"isChangedThisUpdate": false
}]
},
In our scenario we only bind to the top level model changed event i.e. viewData (see sample json below). This json can be nested to several layers. This Model is dynamic and can be nested to many levels.
We are only interested in knowing which members have changed.
Previous to this release, if the value property of M53675 changed we would receive multiple change events at the top level model, one to signify that the rows property had changed and one for the value property of M53675.
Since this update we nolonger receive the event for the member change, just the rows property and there is no way of working out what caused the row change event.
The issues appears to be that when a change is bubbling up, the details of the change are lost when the passes through an ObservableArray.
We can modify our code to iterate through our model and attach a handler to the change event of each observable rows array but we would much prefer if there was an option to allow the modified property to bubble up.
Sample JSON
"viewData": {
"name": "Contact (Insured)",
"ID": "4123",
"reference": null
},
"containers": {
"C12409": {
"containerID": 12409,
"containerType": 6,
"containerName": "Container12409",
"isVisible": true,
"entityID": 419,
"entityName": "Contact",
"rowCount": 1,
"rows": [{
"instanceInfo": {
"entityID": 419,
"instanceID": -1,
"instanceStateMemberID": 2235
},
"columns": {
"M53675": {
"memberID": 53675,
"name": "Contact Type",
"value": 2,
"description": "Organisation",
"isDisabled": false,
"isMandatory": true,
"isValid": true,
"isVisible": true,
"isTargetMandatory": false,
"isChangedThisUpdate": false
},
"M53674": {
"memberID": 53674,
"name": "Domicile Country",
"value": null,
"isDisabled": false,
"isMandatory": true,
"isValid": false,
"isVisible": true,
"isTargetMandatory": false,
"isChangedThisUpdate": false
},
"M53673": {
"memberID": 53673,
"name": "Domicile State",
"value": null,
"isDisabled": true,
"isMandatory": false,
"isValid": true,
"isVisible": true,
"isTargetMandatory": false,
"isChangedThisUpdate": false
},
"M113263": {
"memberID": 113263,
"name": "Language",
"value": null,
"isDisabled": false,
"isMandatory": false,
"isValid": true,
"isVisible": true,
"isTargetMandatory": false,
"isChangedThisUpdate": false
},
"M72693": {
"memberID": 72693,
"name": "Contact Function",
"value": 2,
"code": "CO",
"description": "Company",
"isDisabled": false,
"isMandatory": false,
"isValid": true,
"isVisible": true,
"isTargetMandatory": false,
"isChangedThisUpdate": false
}
},
"isChangedThisUpdate": false
}]
},