Невозможно вызвать функцию при загрузке директивы - PullRequest
1 голос
/ 24 февраля 2020

Я работаю над пользовательской директивой AngularJS. Я пытаюсь вызвать функцию, как только моя директива загрузится.

Я пытался вызвать функцию в функции ссылки, но выдает ошибку, так как TypeError: scope.setCurrent не является функцией .

Вот что я пытался сделать

function pagination() {
    return {
        restrict: 'EA',
        templateUrl: 'template/directives/pagination.html',
        scope: {
            totalData: '@',
        },
        link: dirPaginationControlsLinkFn
    };
}


function dirPaginationControlsLinkFn(scope, element, attrs){
    var vm = this;
    scope.setCurrent(1);    //this function is throwing error

    scope.setCurrent = function(num) {     //working fine
        scope.GetPager(scope.totalData,num,3);
    };
}

Та же самая функция setCurrent (data) работает нормально, когда я запускаю событие щелчка

<li ng-repeat="pages in pages track by $index">
  <a ng-click="setCurrent(pages)">{{ pages }}</a>
</li>

Я не уверен, где я иду не так. Любая помощь будет оценена

1 Ответ

3 голосов
/ 24 февраля 2020

проблема в том, что вы вызываете функцию перед объявлением, поэтому setCurrent не определен.

    scope.setCurrent = function(num) {     //first declare function and initialling with body 
        scope.GetPager(scope.totalData,num,3);
    };

    scope.setCurrent(1);    //than call function 
...