Все мои директивы используют одну и ту же область видимости, и я хочу, чтобы мои директивы работали самостоятельно.
Директива:
app.directive('headerSort', function () {
return {
restrict: 'A',
controller: function ($scope, $element, $attrs) {
$scope.caption = $attrs.caption;
$scope.doSort = function () {
$scope.orderField = $attrs.headerSort;
$scope.reverse = !$scope.reverse;
};
},
template: '<div data-ng-click="doSort();">' +
'{{caption}}' +
'<i class="icon-sort"></i>' +
'</div>'
};
});
HTML:
<th data-header-Sort="FullName" data-caption="Full name"></th>
<th data-header-Sort="FirsName" data-caption="First name"></th>
<th data-header-Sort="Age" data-caption="Age"></th>
В результате все столбцы имеют значение «Возраст» и сортируются по возрасту. Я хочу, конечно, чтобы каждый столбец сортировал свой собственный столбец. Как я могу этого добиться?
ОБНОВЛЕНИЕ: забыл упомянуть, что orderField
и reverse
используются в ng-repeat | orderBy
:
<tbody id="customerRows" data-ng-repeat="customer in customers | orderBy:orderField:reverse">