The sortBy function previously declared by ngTableController has been moved to the new controller
ngTableSorterRowController.
ngTableController: due to 97d09ca4,
Calls to NgTableParams.filter, NgTableParams.sorting (etc) made in the then method of
the promise returned by NgTableParams.reload will NOT trigger a subsequent call to NgTableParams.reload;
the call to NgTableParams.reload must now be explicitly be made.
Previously:
tableParams.reload().then(function(){
if (!tableParams.total() && _.size(tableParams.filter()) > 0) {
tableParams.filter({});
}
});
Now:
tableParams.reload().then(function(){
if (!tableParams.total() && _.size(tableParams.filter()) > 0) {
tableParams.filter({});
return tableParams.reload();
}
});
ngTable+ngTableDynamic: due to b226dec9,
showing/hiding columns now uses ng-if; ng-show is no longer supported
Previously:
<tr>
<td ng-show="showColExpr">
</tr>
Now:
<tr>
<td ng-if="showColExpr">
</tr>
Previously:
cols[1].position = 2;
cols[2].position = 1;
Now:
var swappedCol = cols[2];
cols[2] = cols[1];
cols[1] = swappedCol;
column: due to 7e8448dc,
Binding expressions used for generating thead>th attributes that reference the current column will need modifying
Previously:
<td title="getTitle(column)">
Now:
<td title="getTitle($column)">
directive: due to 3113e340,
Fields previously stored directly on a column object are now only available via the prototype chain
This will affect you only if you are enumerating / specifically checking for "own properties" of the column object.
Custom header.html templates will need to pass the current scope as a parameter to column.filter.
Previously:
<!-- snip -->
<div ng-repeat="(name, filter) in column.filter">
<!-- snip -->
... now becomes:
<!-- snip -->
<div ng-repeat="(name, filter) in column.filter(this)">
<!-- snip -->
filters:
$$name field on filter definitions is not supported.
Previously:
<td filter="{'username': 'text', $$name: 'username'}"</td>
... now becomes:
<td filter="{'username': 'text'}"</td>
Previously:
<input type="text" name="{{column.filterName}}"
... now becomes:
<input type="text" name="{{name}}"
Multiple filters defined by the same filter definition will now render each input with a seperate name.
filters:
column.filterTemplateURL has been dropped as this is no longer applicable. Custom header.html templates will need to change.
Previously:
<tr class="ng-table-filters" ng-init="tableParams">
<th ng-repeat="column in columns" ng-show="column.visible" class="filter">
<div ng-repeat="(name, filter) in column.filter">
<div ng-if="column.filterTemplateURL" ng-show="column.filterTemplateURL">
<div ng-include="column.filterTemplateURL"></div>
</div>
<div ng-if="!column.filterTemplateURL" ng-show="!column.filterTemplateURL">
<div ng-include="'ng-table/filters/' + filter + '.html'"></div>
</div>
</div>
</th>
</tr>
... now becomes:
<tr class="ng-table-filters" ng-init="tableParams">
<th ng-repeat="column in columns" ng-show="column.visible" class="filter">
<div ng-repeat="(name, filter) in column.filter">
<div ng-if="filter.indexOf('/') !== -1" ng-include="filter"></div>
<div ng-if="filter.indexOf('/') === -1" ng-include="'ng-table/filters/' + filter + '.html'"></div>
</div>
</th>
</tr>
Previously:
<td filter="{ 'name': 'text', templateURL: 'path/to/textFilter.html'}"</td>
... now becomes:
<td filter="{ 'name': 'path/to/textFilter.html'}"</td>
Previously:
<td filter="{
'fname': 'text',
'lname': 'text',
templateURL: 'path/to/textFilter.html'}"</td>
... now becomes:
<td filter="{
'fname': 'path/to/textFilter.html',
'lname': 'path/to/textFilter.html'}"</td>
parse method on the ngTable scope has been removed as it's no longer required
Previously, a css class was added to TH elements thusly:
<tr ng-repeat="row in $data">
<td header-class="myHeaderClass"></td>
</tr>
Now:
<tr ng-repeat="row in $data">
<td header-class="'myHeaderClass'"></td>
</tr>
header-class attributedata field to ngTableParamsIn functions that return data for the filters were removed .promise
$scope.names = function(column) {
...
def.resolve(names);
// return def.promise; - old code
return def;
};