使用AngularJS过滤ng-repeat中的特殊字符?

时间:2013-10-30 20:32:34

标签: javascript angularjs

当我在对象中搜索Éric或Eric时,我希望得到相同的结果。但如果输入“Éric”(就像它与mySQL一样工作),我就无法得到Eric。

有这样的事情:

对象:{idEmployee = 12710,firstName =“Eric”,lastName =“Tremblay”,更多...}

<input type="text" ng-model="modelFilter">
<table>
    <tr ng:repeat="friend in friends | filter:modelFilter">
        <td>{{friend.firstName}} {{friend.lastName}}</td>
    </tr>
</table>

1 个答案:

答案 0 :(得分:4)

我认为没有内置的方法将文本从“Éric”转换为“Eric”,所以你应该手动创建一个简单的函数,用它们的标准等价物替换特殊字符。然后,在控制器中创建一个替换方法:

$scope.modelFilterNormalized = function(){
    if($scope.modelFilter)
        return $scope.modelFilter.replace('É','E').replace(/* ... */);
    else return '';
};

...并使用它代替modelFilter

<tr ng:repeat="friend in friends | filter:modelFilterNormalized()">