角度ng重复输入过滤器在搜索中加倍第一个字符

时间:2014-05-27 16:13:42

标签: javascript angularjs

我的页面上有一个输入元素来过滤我的结果集。当我开始在文本框中输入时,它总是将输入的第一个字符加倍。

这是html:

<input ng-model="query" type=search results=5 name=s placeholder="{{translation._SEARCH_}}..." style="text-align: left" />
<div ng-repeat="eu in EligibleUsers | orderBy: Username | filter: query">
    <a style="border: 1px solid green; border-radius: 5px; background-color: light-gray; width: 100%; margin: 5px; height: 100px;" ng-click="Impersonate(eu.Username)">
        <span>{{eu.Username}}</span>
    </a>
</div>

这是控制器变量:

$scope.query = "";

以下是EligibleUsers:

var successGetImpersonateUsers = function (data) {
        if (data.length > 0) {
            for (var i = 0; i < data.length; i++) {
                var impersonateUser = data[i];

                $scope.EligibleUsers.push(impersonateUser);
            }
        }
    };

所以,如果我在搜索框中输入“a”,它会显示“aa”。如果我尝试快速输入“ab”,它会显示“aab”。

编辑:我从控制器中删除了$ scope.query,但我仍然会遇到相同的行为。

编辑:当它绑定到我的范围“查询”变量时,它只复制第一个字符。一旦我删除了ng-model =“query”,那么重复就不再发生......

编辑:当输入单个字符,即“a”,并让它翻倍,所以“aa”,然后点击删除键一次,它实际上删除了两个a。

注意:请忽略我的缺乏/可怕的造型......

1 个答案:

答案 0 :(得分:0)

我发现只有在Mac上的iOS模拟器上才会发生这种情况。显然[我认为]模拟器中的一个错误,并且Angular没有任何问题。谷歌再次获胜!