Я хочу расширить директиву разбиения на страницы (от углового бутстрапа),
но не может найти информацию о том, как расширить встроенные директивы.
В основном я хочу, чтобы paginate выполнял то, что он делает + дополнительные функции отображения [currentPage]/[totalpage] рядом с кнопками разбиения на страницы.
Я не хочу создавать вложенную директиву в разбивке на страницы, просто хочу иметь возможность использовать:
<pagination
class="pagination-sm"
boundary-links="true"
<!-- based on attribute below i want to display 'current/total' -->
meta-info="true"
>
</pagination>
Может ли кто-нибудь помочь или перейти к помощи источника?
Существует способ "продлить" стороннюю директиву без изменения исходного кода с помощью $provider.decorator()
См. Http://angular-tips.com/blog/2013/09/experiment-decorating-directives/
Это немного длинный, но удовлетворяющий, когда он работает.
Если вам нужно только перегрузить шаблон (а не JS-логику директив/контроллеров), вы можете очень легко обновить ui-bootstrap до ваших потребностей:
в шаблоне просто добавьте:
<script id="template/pagination/pagination.html" type="text/ng-template">
<ul class="pagination">
...
</<ul>
</script>
Вы также можете поместить это в выделенный файл и использовать grunt/gulp и html2js для автоматического добавления в templateCache:
angular.module('myApp', ['ui.bootstrap']).run(
['$templateCache', function($templateCache){
$templateCache.put('template/pagination/pagination.html',
"<ul class=\"pagination\">\n" +
" ...\n" +
"</ul>\n");
}
]);
Это заменит существующие шаблоны. Полезно, если вы хотите добавить имя класса css или обновить метки. Если вам нужно добавить логику, этого недостаточно (см. Другой ответ)