Wszystkie moje dyrektywy używają tego samego zakresu i chcę, aby moje dyrektywy działały we własnym zakresie.Jak zapobiec dzieleniu się zakresów między dyrektywami n Angular?
dyrektywa:
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>
Powoduje to, że wszystkie kolumny ma wartość 'wiek' i sortować według wieku. Oczywiście chcę, żeby każda kolumna sortowała własną kolumnę. Jak mogę to osiągnąć?
UPDATE: Zapomniałem wspomnieć, że orderField
i reverse
są wykorzystywane w ng-repeat | orderBy
:
<tbody id="customerRows" data-ng-repeat="customer in customers | orderBy:orderField:reverse">
Możesz być zainteresowany dyrektywą ng-grid AngularUI @ http://angular-ui.github.io/ng-grid/ –