We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 08b2fe7 commit 9d6e6aeCopy full SHA for 9d6e6ae
src/DataTable.spec.ts
@@ -144,6 +144,27 @@ describe("DataTable directive tests", ()=> {
144
{name: 'Claire', age: 16}
145
]);
146
});
147
+
148
+ it("should sort data by child property value", ()=>{
149
+ let newData = [
150
+ {name: 'Claire', city: { zip: '51111'}},
151
+ {name: 'Anna', city: { zip: '31111'}},
152
+ {name: 'Claire', city: { zip: '41111'}},
153
+ {name: 'Claire', city: { zip: '11111'}},
154
+ {name: 'Anna', city: { zip: '21111'}}
155
+ ];
156
+ datatable.ngOnChanges({inputData: new SimpleChange(datatable.inputData, newData)});
157
+ datatable.setSort("city.zip", "asc");
158
+ datatable.ngDoCheck();
159
160
+ expect(datatable.data).toEqual([
161
162
+ {name: 'Anna', city: { zip: '21111'}},
163
164
165
166
+ ]);
167
+ });
168
169
170
describe("data change", ()=> {
src/DataTable.ts
@@ -118,7 +118,10 @@ export class DataTable implements OnChanges, DoCheck {
118
119
private caseInsensitiveIteratee(sortBy: string) {
120
return (row: any): any => {
121
- var value = row[sortBy];
+ var value = row;
122
+ for (let sortByProperty of sortBy.split('.')){
123
+ value = value[sortByProperty];
124
+ }
125
if (value && typeof value === 'string' || value instanceof String) {
126
return value.toLowerCase();
127
}
0 commit comments