Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.07.2014, 17:28
Аватар для Sufir
Аспирант
Отправить личное сообщение для Sufir Посмотреть профиль Найти все сообщения от Sufir
 
Регистрация: 15.06.2008
Сообщений: 47

Несколько экземпляров директивы с различными параметрами
Взялся за изучение ангуляра. Вывожу на странице несколько списков, к каждому из них хочу сделать пагинацию. Набросал директиву, для одного списка всё получилось, всё работает. Но если попытаться ею воспользоваться для нескольких списков в одном контроллере - всегда работает с последним. Есть мысль попробовать сделать как-нибудь при помощи new Paginator('list'), но вообще хочу узнать каким образом правильно использовать несколько раз директивы?

http://jsfiddle.net/QV7u5/28/

<!-- items list 1 -->
<paginator cur-list="list1"></paginator>

<!-- items list 2 -->
<paginator cur-list="list2"></paginator>


.directive('paginator', function() {
            return {
                link: function($scope, element, attrs) {
                    var listName = attrs['curList'];
                    var pages = $scope.paginator.pages[listName];

                    console.log(listName); // вот тут всегда имеем имя последнего списка

                    // ...

                    $scope.setPage = function(page) {
                       console.log(listName); // вот тут всегда имеем имя последнего списка
                       // ...
                    };

                },
                restrict: 'E',
                templateUrl: 'paginator.html'
            };
});


<div class="pagenav">

    <div class="npwrap">
        <span class="prev" ng-click="setPage(activePage-1)" title="Предыдущая">&lt;</span>
    </div>

    <div class="pages">

        <span
                ng-repeat="pageNum in pagesList"
                ng-click="setPage(pageNum)"
                ng-class="(activePage === pageNum) ? 'page-active' : ''">
            {{pageNum}}
        </span>

    </div>

    <div class="npwrap">
        <span class="next" ng-click="setPage(activePage+1)" title="Следующая">&gt;</span>
    </div>

</div>

Последний раз редактировалось Sufir, 18.07.2014 в 18:05.
Ответить с цитированием
  #2 (permalink)  
Старый 18.07.2014, 18:03
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от Sufir
каким образом правильно использовать несколько раз директивы?
писать реиспользуемые директивы

Можешь посмотреть, как делал я
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #3 (permalink)  
Старый 20.07.2014, 22:05
Аватар для FireVolkhov
Аспирант
Отправить личное сообщение для FireVolkhov Посмотреть профиль Найти все сообщения от FireVolkhov
 
Регистрация: 17.04.2013
Сообщений: 88

Сообщение от Sufir
но вообще хочу узнать каким образом правильно использовать несколько раз директивы?
Используй изолированный $scope Пример
или не используй $scope для хранения индивидуальной инфы для директивы
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск функции несколько раз подряд с разными параметрами ZaetS Общие вопросы Javascript 0 07.04.2011 19:43