Angularjs 带有输入值的orderBy
我对orderBy筛选器有问题。下面的代码将为我的计划列排序。当我在输入中键入一个值时,过滤器会自动开始按照我的要求对值排序 但是,如果我在输入中键入一个值,使该字符在列表中的位置更高,则输入将在我键入该值之前结束 如果我在输入中键入的值将字符从列表下方删除,则该输入不会关闭,并允许我完成键入值 有人能解释这种行为吗Angularjs 带有输入值的orderBy,angularjs,Angularjs,我对orderBy筛选器有问题。下面的代码将为我的计划列排序。当我在输入中键入一个值时,过滤器会自动开始按照我的要求对值排序 但是,如果我在输入中键入一个值,使该字符在列表中的位置更高,则输入将在我键入该值之前结束 如果我在输入中键入的值将字符从列表下方删除,则该输入不会关闭,并允许我完成键入值 有人能解释这种行为吗 <tr ng-repeat="char in localChars | orderBy: '-initiative'"> <td>{{char.na
<tr ng-repeat="char in localChars | orderBy: '-initiative'">
<td>{{char.name}}</td>
<td ng-hide='show' ng-click='show = true'>{{char.initiative}}</td>
<td ng-show='show'>
<input ng-blur='initiative(char)' ng-model='char.initiative' type="text">
</td>
</tr>
{{char.name}
{{char.initiative}
以下是我认为的事件顺序:
char.initiative
的值ng repeat
重新排序ng repeat
的作用域,导致本地show
变量丢失其值(请记住,ng repeat
有自己的作用域)<input ng-blur="initiative(char)"
ng-model="char.initiative"
ng-model-options="{ updateOn: 'blur' }"
type="text" />
什么是“输入将结束”意思?此外,将方法(initiative
)命名为与属性(initiative
)相同的属性,从长远来看可能会导致混淆。正如您所看到的,输入将根据show的值显示/隐藏。我所说的“收尾”是指它隐藏了。因此,你的ng blur
在你输入之前就触发了,因为值的变化导致列表被重新排序,从而导致输入失去焦点?这似乎是有道理的。但是为什么它在我没有点击输入外部的情况下触发模糊事件呢?事实上,我不认为这是正在发生的事情。我将添加一个带有解释和解决方法的答案。是的,这就成功了。直到现在我才意识到ng车型选项指令。一切都按我的需要进行。谢谢你的帮助!