我的页面上有一个输入元素来过滤我的结果集。当我开始在文本框中输入时,它总是将输入的第一个字符加倍。
这是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。
注意:请忽略我的缺乏/可怕的造型......
答案 0 :(得分:0)
我发现只有在Mac上的iOS模拟器上才会发生这种情况。显然[我认为]模拟器中的一个错误,并且Angular没有任何问题。谷歌再次获胜!