Недавно я переключился с jQuery на Angularjs, и я перерабатываю некоторую логику разбиения на страницы для ссылок («Next», «Previous» и т. Д.), Которые ранее были написаны в Javascript jQuery.Angularjs: это подходящее место для использования директивы?
Каждое звено имеет условие ngIf (например, «Назад» ссылка не будет отображаться, если вы находитесь на странице 1) плюс ngClick события, которое существенно обновляет переменную области действия с именем $ сферы. pagination.position, которая определяет, какие результаты отображаются в таблице.
Мой исходный код был что-то вроде этого (упрощенный для ясности):
шаблона
<a ng-if="pagination.position > 0" ng-click="pagination.first()">First</a>
Контроллер
$scope.pagination = {
first: function() {
this.position = 0;
}
}
Тогда я узнал больше о директивах, и как большинство элементов DOM, которые не являются статическими HTML, должны создаваться с использованием директивы е. Поэтому я переключился каждую ссылку (так как каждый имеет свои собственные правила отображения и поведения на щелчки) в своей собственной директивы, например, так:
Шаблон
<a pagination-first></a>
Директива
app.directive('paginationFirst', function() {
return {
link: function(scope,el,attr) {
scope.pagination.first = function() {
scope.pagination.position = 0;
}
},
replace: true,
template: '<a pagination-first ng-if="pagination.position > 0" ng-click="pagination.first()">First</a>'
}
});
Я перейду прямо к погоне: неправильно ли я делаю директивы? Все, что произошло, с моей точки зрения, это то, что я перешел от логики в своем шаблоне к шаблону в своей логике, и я определил функцию события click в директиве, а не в контроллере.
Действительно ли это подходящее время для использования директивы?
Я хотел бы узнать лучшие практики, поэтому я хотел бы знать, пропустил ли я этот пункт, и если первоначальный подход на основе шаблонов ngIf и функций контроллера был прекрасен даже при более длинных и более сложных условиях ngIf чем показанный.
Вы сталкиваетесь с некоторыми проблемами в директиве? Кроме того, я предлагаю создать директиву для разбивки на страницы для каждой страницы. –
Не так, я просто не видел никакой пользы в разделении ссылок на страницы в директивы и предполагал, что это было потому, что это было не лучшим вариантом для директив , Благодарю. – user3494677