Ios 自定义过滤器赢得';t在iPhone上更新实时结果

Ios 自定义过滤器赢得';t在iPhone上更新实时结果,ios,angularjs,angularjs-filter,Ios,Angularjs,Angularjs Filter,更新: 我有一个基本搜索字段,显示员工数据JSON数组中匹配的姓名: <form> <label>Enter name: <input type="text" ng-model="search"></label> </form> <ul class="result-container" ng-if="search.length>1"> <li class="result" ng-repeat="

更新:

我有一个基本搜索字段,显示员工数据JSON数组中匹配的姓名:

<form>
    <label>Enter name: <input type="text" ng-model="search"></label>
</form>

<ul class="result-container" ng-if="search.length>1">
    <li class="result" ng-repeat="emp in employees | filter:{full_name:search}">
</ul>
并更新了我的视图以使用它:

    <li class="result" ng-repeat="emp in employees |  firstAndLastName:search">
  • 这在我的桌面浏览器上可以正常工作——结果会随着文本的键入而实时更新。但在手机上,无论键盘是否打开,它都不再显示任何结果。这在Safari和Chrome(iOS 8.0.2)中都会发生

    我试过了,但没什么改变。(我目前正在使用AngularJS 1.3.0-rc.4。)


    为什么AngularJS内置过滤器更新实时结果,而我的自定义过滤器不更新?为什么这只发生在手机上?

    您是否尝试确保输入和搜索字符串都设置为小写:

    app.filter('firstAndLastName', function() {
        return function(collection, str) {
            var strToLower = str.toLowerCase();
            return collection.filter(function(el) { // javascript array.filter()
                return (el.first_name.toLowerCase().indexOf(strToLower) !== -1 || el.last_name.toLowerCase().indexOf(strToLower) !== -1);
            });
        };
    });
    

    我意识到我的手机自动大写了第一个字母,结果没有显示出来。如果不是这样的话,您可能需要提供更多关于数据如何进入的信息。

    我很确定您已经尝试过了,但您是否尝试过清除移动浏览器的缓存?顺便说一句,这项操作的最终目标是允许我从JSON中删除“全名”字段,将其大小减少20-25%。
    app.filter('firstAndLastName', function() {
        return function(collection, str) {
            var strToLower = str.toLowerCase();
            return collection.filter(function(el) { // javascript array.filter()
                return (el.first_name.toLowerCase().indexOf(strToLower) !== -1 || el.last_name.toLowerCase().indexOf(strToLower) !== -1);
            });
        };
    });