我创建了一个非常出色的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) {
});
};
答案 0 :(得分:1)
由于未定义商品,您收到该错误,您可以添加以下几行以防止该错误。
app.filter('filterByName', function () {
return function (item) {
if(item == undefined)
item = []
return item.sort((a,b) => a.name.localeCompare(b.name))
};
});
您还可以在控制器中初始化$ scope.contacts = []来避免此问题。