mirror of
https://github.com/DataTables/DataTables.git
synced 2025-02-07 05:54:15 +01:00
Fix #39 - null values should also be considered like undefined values when working with nested data and have properties created as needed.
This commit is contained in:
parent
0804c50d72
commit
fd0e0a42e4
6
media/js/jquery.dataTables.js
vendored
6
media/js/jquery.dataTables.js
vendored
@ -867,11 +867,11 @@
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
data = data[ a[i] ];
|
if ( data === null || data[ a[i] ] === undefined )
|
||||||
if ( data === undefined )
|
|
||||||
{
|
{
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
data = data[ a[i] ];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -949,7 +949,7 @@
|
|||||||
|
|
||||||
// If the nested object doesn't currently exist - since we are
|
// If the nested object doesn't currently exist - since we are
|
||||||
// trying to set the value - create it
|
// trying to set the value - create it
|
||||||
if ( data[ a[i] ] === undefined )
|
if ( data[ a[i] ] === null || data[ a[i] ] === undefined )
|
||||||
{
|
{
|
||||||
data[ a[i] ] = {};
|
data[ a[i] ] = {};
|
||||||
}
|
}
|
||||||
|
@ -433,11 +433,11 @@ function _fnGetObjectDataFn( mSource )
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
data = data[ a[i] ];
|
if ( data === null || data[ a[i] ] === undefined )
|
||||||
if ( data === undefined )
|
|
||||||
{
|
{
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
data = data[ a[i] ];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -515,7 +515,7 @@ function _fnSetObjectDataFn( mSource )
|
|||||||
|
|
||||||
// If the nested object doesn't currently exist - since we are
|
// If the nested object doesn't currently exist - since we are
|
||||||
// trying to set the value - create it
|
// trying to set the value - create it
|
||||||
if ( data[ a[i] ] === undefined )
|
if ( data[ a[i] ] === null || data[ a[i] ] === undefined )
|
||||||
{
|
{
|
||||||
data[ a[i] ] = {};
|
data[ a[i] ] = {};
|
||||||
}
|
}
|
||||||
|
73
media/unit_testing/tests_onhold/2_js/39-nested-null.js
Normal file
73
media/unit_testing/tests_onhold/2_js/39-nested-null.js
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
// DATA_TEMPLATE: empty_table
|
||||||
|
oTest.fnStart( "39 - nested null values" );
|
||||||
|
|
||||||
|
$(document).ready( function () {
|
||||||
|
var test = false;
|
||||||
|
|
||||||
|
$.fn.dataTable.ext.sErrMode = "throw";
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"No default content throws an error",
|
||||||
|
function () {
|
||||||
|
try {
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"aaData": [
|
||||||
|
{ "a": "0", "b": {"c": 0} },
|
||||||
|
{ "a": "1", "b": {"c": 3} },
|
||||||
|
{ "a": "2", "b": null }
|
||||||
|
],
|
||||||
|
"aoColumns": [
|
||||||
|
{ "mDataProp": "a" },
|
||||||
|
{ "mDataProp": "b.c" }
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
catch(err) {
|
||||||
|
test = true;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
function () { return test; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Table renders",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"aaData": [
|
||||||
|
{ "a": "0", "b": {"c": 0} },
|
||||||
|
{ "a": "1", "b": {"c": 3} },
|
||||||
|
{ "a": "2", "b": null }
|
||||||
|
],
|
||||||
|
"aoColumns": [
|
||||||
|
{ "mDataProp": "a" },
|
||||||
|
{ "mDataProp": "b.c", "sDefaultContent": "allan" }
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody td:eq(0)').html() === "0"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnTest(
|
||||||
|
"Default content applied",
|
||||||
|
function () {
|
||||||
|
oSession.fnRestore();
|
||||||
|
|
||||||
|
$('#example').dataTable( {
|
||||||
|
"aaData": [
|
||||||
|
{ "a": "0", "b": {"c": 0} },
|
||||||
|
{ "a": "1", "b": {"c": 3} },
|
||||||
|
{ "a": "2", "b": null }
|
||||||
|
],
|
||||||
|
"aoColumns": [
|
||||||
|
{ "mDataProp": "a" },
|
||||||
|
{ "mDataProp": "b.c", "sDefaultContent": "allan" }
|
||||||
|
]
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
function () { return $('#example tbody td:eq(5)').html() === "allan"; }
|
||||||
|
);
|
||||||
|
|
||||||
|
oTest.fnComplete();
|
||||||
|
} );
|
Loading…
x
Reference in New Issue
Block a user