试图使用Angular JS执行搜索过滤器时发生错误
Javascript error trying to perform a search filter using Angular JS
在我的应用程序中,我尝试从一开始就通过部分匹配对名称执行搜索过滤器。下面是我要做的一个例子:
假设我有一个名字列表:
Ben
James
Adam
Judy
Andy
并在搜索字段中输入文本"a"
,它将返回
Adam
Andy
如果我在搜索字段中进一步输入"an"
,它将返回
Andy
在我的app.js中,我有代码:
var myApp = angular.module("myApp", []);
myApp.controller("myController", function ($scope) {
var employees = [
{ name: "Ben", gender: "Male", salary: 55000, city: "London" },
{ name: "Jane", gender: "Female", salary: 62000, city: "Albany" },
{ name: "Rick", gender: "Male", salary: 65000, city: "Los Angeles" },
{ name: "Pam", gender: "Female", salary: 60000, city: "Paris" },
{ name: "Josh", gender: "Male", salary: 68000, city: "Brussels" },
];
$scope.employees = employees;
$scope.filtered = function (item) {
if ($scope.searchName == undefined) {
return true;
} else {
if (item.name.toLowerCase().startsWith($scope.searchName.toLowerCase()) != -1) {
return true;
}
}
return false;
}
});
在我的html页面中,我有以下一行显示员工列表:
<tr ng-repeat="employee in employees | filter: filtered">
以及用户输入搜索文本的下面一行:
<input type="text" placeholder="Search Name" ng-model="searchName.name"> <br><br>
然而,当我尝试测试时,我得到了错误:
Error: $scope.searchName.toLowerCase is not a function. (In '$scope.searchName.toLowerCase()', '$scope.searchName.toLowerCase' is undefined)
由于您的ng-model
被设置为searchName.name
, $scope.searchName
是一个对象,因此它没有.toLowerCase()
功能。
你需要像这样调整if-case:
if (item.name.toLowerCase().startsWith($scope.searchName.name.toLowerCase()) !== -1) {}
此外,除非明确不需要严格的恒等运算符,否则建议使用恒等运算符而不是相等运算符。
ng-model
被设置为searchName.name,所以您可能需要调用$scope.searchName.name.toLowerCase()
而不是$scope.searchName.toLowerCase()
相关文章:
- ui网格日期单元格过滤器,过滤日期格式导致显示错误的日期
- 角度过滤器可以工作,但将输入视为未定义并抛出错误
- 带有过滤器的jQuery标记引发错误
- 游戏关闭 - 过滤器错误
- CORS 过滤器错误 - 需要帮助来修复相同的错误
- 过滤器 AngularJS REST JSON 数据:错误:badcfg 响应与配置的参数不匹配
- 将“按$index跟踪”与过滤器一起使用时,出现错误.如何解决这个问题
- Gettin 交叉过滤器.js错误“太多递归”
- 过滤器会导致错误
- AngularJS日期过滤器显示错误的日期
- 错误:text.replace不是angularjs过滤器中的函数,如何解决此问题
- 如何修复“仅在ES6中可用”的过滤器错误
- 使用wordpress the_content过滤器注入javascript会导致javascript语法错误
- Stocktwits符号过滤器标志抛出错误
- Angular分页过滤器错误
- ExtJS过滤器的错误与组合框
- AngularJS 1.X:空列上的过滤器错误(?)
- 单元测试过滤器错误:预期null等于[object]
- 角度ng重复和过滤器错误(版本1.1.5有效,1.2.15有错误)
- Angularjs过滤器错误:";错误:未知提供程序:textProvider"