Javascript 角度ng重复输入过滤器将搜索中的第一个字符加倍
我的页面上有一个输入元素来过滤我的结果集。当我开始在文本框中键入时,它总是将键入的第一个字符加倍 以下是html:Javascript 角度ng重复输入过滤器将搜索中的第一个字符加倍,javascript,angularjs,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 | fi
<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>
以下是合格人员:
var successGetImpersonateUsers = function (data) {
if (data.length > 0) {
for (var i = 0; i < data.length; i++) {
var impersonateUser = data[i];
$scope.EligibleUsers.push(impersonateUser);
}
}
};
var successGetImpersonateUsers=函数(数据){
如果(data.length>0){
对于(变量i=0;i
因此,如果我在搜索框中键入“a”,它将显示“aa”。如果我尝试快速键入“ab”,它将显示“aab”
编辑:我从我的控制器中删除了$scope.query,但仍然得到相同的行为
编辑:它仅在绑定到我的范围“查询”变量时复制第一个字符。一旦我删除了ng model=“query”,那么复制就不会再发生了
编辑:当输入一个字符,即“a”,并让它加倍,所以“aa”,然后点击删除键一次,它实际上删除了两个a
注意:请忽略我的拙劣/糟糕的风格…我已经确定只有在Mac上的iOS模拟器上才会发生这种情况。显然[我认为]模拟器中有一个bug,Angular没有任何问题。谷歌又赢了 Eligibleuser在哪里?您能展示一下它是如何工作的吗?在这里工作很好:您是否在视图/控制器中的其他地方使用了
query
,这可能会与此用法发生冲突?顺便说一句,您需要将您的orderBy
表达式用引号括起来,正如您将在Plunker中看到的那样。@rafaels88我更新了代码以显示符合条件的用户……我根据您的示例代码发布的内容不会复制您描述的行为。你能用叉子叉它并修改它吗?@MarcKline我删除了$scope.query=“”;从我的控制器完全,我仍然得到相同的行为。
var successGetImpersonateUsers = function (data) {
if (data.length > 0) {
for (var i = 0; i < data.length; i++) {
var impersonateUser = data[i];
$scope.EligibleUsers.push(impersonateUser);
}
}
};