【发布时间】:2015-11-13 01:52:06
【问题描述】:
我有一个项目数组,每个项目都显示为 ng-repeat 中的指令,如下所示:
<div ng-repeat="item in ctrl.data | filter:ctrl.query" class="ubi-box container-fluid">
<user-item item="item" . . .></user-item>
</div>
如您所见,ng-repeat 上有一个过滤器。在指令中,用户可以编辑表单中的项目,当用户单击其中一个项目时会显示这些项目。
当用户编辑影响过滤器的字段时会出现问题。如果用户使用过滤器 (ctrl.query) 找到了该项目,并且如果编辑后的文本意味着该项目不再与过滤器匹配,则该项目会在用户点击保存或其他任何操作之前突然消失。噗!
最优雅的解决方案是什么?我不想在编辑开始时关闭过滤器,因为这样所有项目都会重新出现。我希望过滤器仍然有效,但我希望正在编辑的项目即使被过滤掉也能继续显示。
我是否在每个项目中设置一个“isOpen”标志,并在过滤器中添加一个“or isOpen”子句?添加这样的标志对我来说总是很笨拙,我什至不确定如何在过滤器语法中做到这一点。
是否向过滤器添加“or isFormVisible”子句?这可能更简洁,但同样,我什至如何在 ngRepeat 过滤器语法中做到这一点?
想法?
提前致谢
约翰
【问题讨论】:
标签: angularjs