构建按名称过滤的自定义 angular 过滤器

Building custom angular filter that filters by name

我正在学习本教程:

http://www.toptal.com/angular-js/a-step-by-step-guide-to-your-first-angularjs-app

在我的控制器中,我有这个功能:

$scope.searchFilter = function (driver) {
    var keyword = new RegExp($scope.nameFilter, 'i');
    return !$scope.nameFilter || keyword.test(driver.Driver.givenName) || keyword.test(driver.Driver.familyName);
};

在我的 html 中,我有这一行:

<tr ng-repeat="driver in driversList | filter: searchFilter">

在我的 html 搜索栏中,我有这一行:

<input type="text" ng-model="nameFilter" placeholder="Search..."/>

searchFilter 函数中的这个是做什么的:

return !$scope.nameFilter

是否考虑到我在搜索栏中没有输入任何内容?如果可以,它是如何工作的?

$scope.nameFiler == ''(或 null,未定义)

searchFilter 将 returns true

因此,当用户未在搜索框中输入任何内容时,过滤器应该 return 所有项目。