我有一个分配了ng-model的搜索框:
searchLibrary.text
使用过滤器<div ng-repeat="w in items | filter:searchLibrary.text" on-item-removed="onItemRemoved(item)">
ng-repeat
因此,当用户输入内容时,过滤器会从数组中删除所有不匹配的元素,但有没有办法隐藏不匹配的元素而不是删除它们?
删除元素有问题的原因是我有一个分配给items
的回调方法,当项目被删除时会被调用,但当用户搜索某些不正确的项目时会触发它
编辑:{
"query":{
"range":{"ncopies":{gte:2, lte:5}}
}
}
数组中的所有元素都是可拖动的,因此用户可以手动将项目从面板A拖放到面板B.当项目获取时会触发回调已删除,但在用户搜索项目说明时不应触发。
非常感谢任何帮助。
答案 0 :(得分:1)
您可以使用ng-if
或ng-show
隐藏元素。你可以替换
<div ng-repeat="w in items | filter:searchLibrary.text" on-item-removed="onItemRemoved(item)">
与
<div ng-repeat="w in items" ng-if="w === searchLibrary.text" on-item-removed="onItemRemoved(item)">
以下是CodePen https://codepen.io/anon/pen/VmPzMz
上示例的链接答案 1 :(得分:0)
您也可以使用ng-class。
.is-hidden {
display: none;
}
<div ng-repeat="w in items" ng-class="{'is-hidden': w===searchLibrary.text}"
on item-removed="onItemRemoved(item)">