Как утверждают другие: это потому, что ваш браузер игнорирует TH, прежде чем он будет помещен в таблицу. Мой предпочтительный способ исправить это - изменить директиву на директиву атрибута и добавить ее в TH в таблице.
Директива выглядит следующим образом:
.directive('sortByDirective', function () {
return {
templateUrl: 'SortHeaderTemplate',
restrict: 'A',
transclude: true,
replace: false,
scope: {
sortdir: '=',
sortedby: '=',
sortvalue: '@',
onsort: '='
},
link: function (scope, element, attrs) {
scope.sort = function () {
if (scope.sortedby == scope.sortvalue)
scope.sortdir = scope.sortdir == 'asc' ? 'desc' : 'asc';
else {
scope.sortedby = scope.sortvalue;
scope.sortdir = 'asc';
}
scope.onsort(scope.sortedby, scope.sortdir);
}
}
};
});
Установка ее на странице выглядит следующим образом:
<th sort-by-directive
ng-repeat="header in headers"
onsort="onSort"
sortdir="filterCriteria.sortDir"
sortedby="filterCriteria.sortedBy"
sortvalue="{{ header.value }}">{{ header.title }}
</th>
Если вы ищете строгое решение SimpleDB (согласно заданному вопросу), Katta и Lucene вам не помогут. Если вы ищете просто решение, основанное на «инфраструктуре Amazon», то подойдет любой из вариантов.
Все три варианта различаются с точки зрения объема настройки и управления, которые вам придется выполнять, и выбор лучшего зависит от вашего фактические требования.
SimpleDB с многозначным атрибутом Keyword - лучший выбор, если вам нужна простота и минимум администрирования. И если не нужно сортировать по релевантности. Не нужно ничего настраивать или администрировать, и вы будете платить только за фактический процессор и пропускную способность.
Lucene - отличный выбор, если вам нужно больше, чем поиск по ключевым словам, но вам придется самостоятельно управлять обновлениями индекса. Вам также придется управлять балансировкой нагрузки, резервным копированием и отработкой отказа, которые вы получили бы с SimpleDB. Если вас не заботит отработка отказа и вы можете терпеть время простоя, пока вы выполняете восстановление в случае сбоя EC2, то это на одну проблему меньше, о чем нужно беспокоиться, и на одну причину меньше предпочитать SimpleDB.
С Katta на EC2 вы ' буду управлять всем самостоятельно. У вас будет наибольшая гибкость и больше всего работы.
у меня была бы максимальная гибкость и больше всего работы. у меня была бы максимальная гибкость и больше всего работы.