Javascript 在ng repeat循环中只显示一些html元素的最佳方式是什么

Javascript 在ng repeat循环中只显示一些html元素的最佳方式是什么,javascript,html,angularjs,Javascript,Html,Angularjs,我想在ng repeat中使用ng if(如本问题所述): 但是,我想在if条件成立的情况下在表中显示一行。在以上问题的答案中,如果if条件不成立,您将得到空的div标记。这不会给div带来太多问题,但在对表执行相同操作时,您不希望在tr标记之间有div(或span)标记 我是否可以使用其他标签或指令

我想在ng repeat中使用ng if(如本问题所述): 但是,我想在if条件成立的情况下在表中显示一行。在以上问题的答案中,如果if条件不成立,您将得到空的div标记。这不会给div带来太多问题,但在对表执行相同操作时,您不希望在tr标记之间有div(或span)标记


我是否可以使用其他标签或指令
现在,如果您根本不想呈现内容,我认为唯一的解决方案是从控制器中的集合中删除这些元素。您可以使用ng-show。它可以用于显示和隐藏标记。如果您不想在标记内部进行角度编译,可以使用ng if。

更好的方法是使用(自定义)过滤器。 这样,只生成所需的行,而不是隐藏/删除现有行

我刚才提出了另一个问题,说明了如何使用过滤器:

相关线路如下:

<tr ng-repeat='item in appVm.users |filter:test'>

您可以在代码中直接使用对象,如下所示:

<tr ng-repeat='item in appVm.users |filter:{age:32}'> 

如果你把这一行放在我链接的示例中,你就可以看到结果了


这对您有帮助吗?

我觉得这在我的页面上可能会变得复杂,因为我已经在页面上设置了自定义过滤器,并且有很多嵌套表。不过我喜欢这个答案,并将进一步研究。@Sam,您也可以直接在模板中指定过滤器。这样,您的作用域/控制器就不需要额外的属性。我会更新一下答案,告诉你怎么做!听起来不错。我目前正在使用阿斯特留斯的答案。我无法使用angular js设置过滤器的value属性。我还想看看它的性能比较。@Sam,我猜,过滤器解决方案会快得多。我认为在我的解决方案中无法做到这一点,因为我需要访问if语句中循环中的对象。例如,我正在循环“CoreTowns in CoreTowns”,它位于“department in departments”的循环中。然后我想检查语句'coredustry.departmentParentId==department.departmentId'是否成立。如果我把它作为内联过滤器作为ng repeat指令的一部分,那么我还没有访问coreDuty对象的权限。然而,如果我使用ng show,那么它可以访问coreDuty对象。如果在ng repeat指令旁边使用ng show指令,而忽略ng if指令,则这种方法很有效。我还没有完全测试Sander的答案,但如果这个答案不被证明是有利的,我会将其标记为已使用。我选择Sander Elias的答案,因为它将if语句与foreach指令混合在一起,同时保持DOM的简单性(没有不需要的隐藏元素),而且速度也快得多。在我的例子中,这些陈述看起来像: