Угловой контроллер пагинации - PullRequest
0 голосов
/ 18 октября 2018

Я подаю заявку на работу.Я - активный разработчик, и все же они увидели мое резюме и прислали мне вопросы AngularJS. Отвечает ли эта проблема или они просто дергают мою цепочку? Может ли кто-нибудь направить меня к ресурсам, где я могу научиться отвечать на этот вопрос, спасибо.

Требования:

Написатьконтроллер в AngularJS, который использует сервис уведомлений для извлечения пользовательских уведомлений.Вы должны иметь возможность вернуть 10 уведомлений, получить следующие 10, используя нумерацию страниц, а затем продолжить, пока результатов больше не будет.

Параметры уведомлений: - смещение: сколько пропущенных уведомлений - лимит: сколько возвращаемых уведомлений- from: отметка времени в миллисекундах с момента начала, используется для разбиения на страницы, чтобы новые уведомления не отбрасывали результаты.

--------> фабричная служба

'use strict';

angular.module('app')

.factory('NotificationService', function ($resource) {
  return $resource('/api/me/notifications/:controller', {
    id: '@_id'
  },
  {
    notifications: {
      method: 'GET'
    },
    getSettings: {
      method: 'GET',
      params: {
        controller: 'settings'
      }
    },
    setSettings: {
      method: 'POST',
      params: {
        controller: 'settings'
      }
    }
  });
});

--------> контроллер

'use strict';

(function () {

  function NotificationController() {

  }

  angular.module('app').controller('NotificationController', NotificationController);

})();

1 Ответ

0 голосов
/ 19 октября 2018

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

(function () {
// assuming the current page, offset and limit are defined by the user settings
  function NotificationController($scope, $resource, NotificationService) {
    // declaring things i might need
    let notifications = NotificationService.notifications();
    let totalNotes = notifications.length;
    let id = $scope.id;
    let offset = $scope.offset;
    let startTime = $scope.starTime;
    let pageIterator = $scope.pageIterator;
    let pages = Math.ceil(totalNotes / pageIterator);

    // check if grabbed some undefined items from database
    function checkUndef(notes){
        let newNotes = notes;
        if (notes[notes.length - 1]=== undefined ){
            newNotes.pop();
            return checkUndef(newNotes);
        } else return newNotes;
    }
    // filterfor time
    function checkTime(note) {
       if( note.createAt > startTime) {
           return note;
       }
        )
    }
    // finally running the functions
    notifications = checkUndef(notes);
    notifications = notifications.filter(checkTime); 
    return notifications.slice($scope.offset, $scope.offset+$scope.pageIterator);
        
  }

  angular.module('app').controller('NotificationController', [$scope,$resource, NotificationController]);

})();
...