Контроллер AngularJS запускается дважды с разными значениями переменных - PullRequest
0 голосов
/ 10 мая 2019

У меня есть угловой контроллер со следующим кодом внутри него "

var getFilms = function(searchterm, category, page){
            dataService.getFilms(searchterm, category, page).then(response => {
              let films = [];
              let pageLinks = [];
              console.log($routeParams.page += 1);
              console.log($routeParams.page - 1);
              for (let i = 0; i < response[10][0]; i += 10) {
                let pageNum = i/10;
                if (pageNum === $routeParams.page) {
                  pageLinks.push({
                    pageLink: "/wai-assignment/#/films?searchterm=" + searchterm + "&category=" + category + "&page=" + i/10,
                    pageNum: i/10
                  })
                }
                if (pageNum === ($routeParams.page - 1)) {
                  pageLinks.push({
                    pageLink: "/wai-assignment/#/films?searchterm=" + searchterm + "&category=" + category + "&page=" + i/10,
                    pageNum: i/10
                  })
                }
                if (pageNum === ($routeParams.page + 1)) {
                  pageLinks.push({
                    pageLink: "/wai-assignment/#/films?searchterm=" + searchterm + "&category=" + category + "&page=" + i/10,
                    pageNum: i/10
                  })
                }

              }
              for (let i = 0; i < (response.length - 1); i++) {
                films.push({
                  title: response[i].title,
                  category: response[i].name,
                  description: response[i].description
                })
              }
              $scope.pageLinks = pageLinks;
              $scope.films = films;
            },
            function(err){
              $scope.status = 'Unable to load data' + err;
            },
            function(notify){
              console.log(notify);
            });
          }

Во-первых, где написано console.log($routeParams.page += 1), выводится как «01», а не «1», почему так? $ routeParams.page - это число (я проверил с помощью typeof).

Во-вторых, этот код срабатывает дважды. Два этих файла console.logs появляются дважды в консоли.

В-третьих, при втором выполнении они выводят переменные, отличные от первого:

controllers.js:26 01
controllers.js:27 0
controllers.js:26 011
controllers.js:27 10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...