Сортировка AngularJS не определена в фильтре - PullRequest
1 голос
/ 23 мая 2019

Я создал фильтр AngularJS, который работает очень круто !!! но проблема с консолью. в консоли, показывая ошибку, хотя она работает. Теперь я хочу удалить ошибку.

это ошибка в консоли:

TypeError: Cannot read property 'sort' of undefined
    at filter.js:14

вот мой фильтр:

app.filter('filterByName', function () {
    return function (item) {
        return item.sort((a,b) => a.name.localeCompare(b.name))
    };
  });

Обратите внимание, что фильтр работает нормально, но только он показывает эту ошибку в консоли, моя проблема с этой ошибкой.

Вот как я использовал этот фильтр в tempalate:

 <tr ng-repeat="contact in contacts | filterByName track by $index ">

Я слышал, что ошибка показывает, потому что я не настроил версию js, но я не знаю, что это и как это сделать.

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

Дополнительно:

Здесь я инициализировал контакты.

$scope.getAllContact = function() {
    var data = $http.get("http://127.0.0.1:8000/api/v1/contact/")
    .then(function(response) {
      $scope.contacts = response.data;

    }, function(response) {

    });
  };

1 Ответ

1 голос
/ 23 мая 2019

Вы получаете эту ошибку, потому что ваш элемент не определен, вы можете добавить следующие строки, чтобы предотвратить эту ошибку.

app.filter('filterByName', function () {
    return function (item) {
        if(item == undefined)
            item = []
        return item.sort((a,b) => a.name.localeCompare(b.name))
    };
});

Вы также можете инициализировать $ scope.contacts = [] в вашем контроллере, чтобы избежать этой проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...