Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
$rootScope变量在ng repeat Angularjs中_Angularjs_Ng Repeat_Rootscope - Fatal编程技术网

$rootScope变量在ng repeat Angularjs中

$rootScope变量在ng repeat Angularjs中,angularjs,ng-repeat,rootscope,Angularjs,Ng Repeat,Rootscope,我有两个不同的表格模板。我在第一个表中使用ng show='template==1'指令,在第二个表中使用ng show='template==2'来保持表的可见性。我在控制器上将模板设置为1或2。在这两个表中,我将行构建为$root.tradedetails中的ng repeat=det,并将json从控制器分配给tradedetails。我是否可以对两个表模板使用相同的rootscope变量$root.tradedetails。例如,如果我想迭代第一个表,我将设置模板=1,并将详细信息分配给

我有两个不同的表格模板。我在第一个表中使用ng show='template==1'指令,在第二个表中使用ng show='template==2'来保持表的可见性。我在控制器上将模板设置为1或2。在这两个表中,我将行构建为$root.tradedetails中的ng repeat=det,并将json从控制器分配给tradedetails。我是否可以对两个表模板使用相同的rootscope变量$root.tradedetails。例如,如果我想迭代第一个表,我将设置模板=1,并将详细信息分配给$root.tradedetails。它将自动将第二个表的显示设置为“无”。我想知道第二个表中的ng repeat是否在$root.tradedetails上迭代。

简单的答案是肯定的-可以在同一个集合上迭代多个ng repeat

ng show所做的就是在ng show表达式的结果为false的元素中添加一个css类ng hide。这会隐藏元素,但它仍然存在于DOM中


因此,使用您描述的设置,您将在DOM中有两个表,都包含$rootscope.tradedetails中的内容,它们将根据$scope.template的值显示/隐藏。

您能提供实际代码而不是描述吗?感谢您的即时回复。我还有一个问题。如果第二个表的可见性设置为false,则会对第二个表重复执行ng。i、 例如,如果我在两个表中使用相同的集合,那么ng repeat是对这两个表执行,还是仅对可见性为true的表执行。如果它每次都执行这两个表,这将是性能问题,对吗?使用n-show将对这两个表执行-但其中一个将被隐藏。如果需要在表之间快速切换,并且每个表中的行数少于300行,那么使用ng show是最好的选择,并且性能应该很好。如果您有更多的行,那么可以使用ng If而不是ng show-这将只在可见表上迭代。这里的缺点是在表之间切换会比较慢。它将包含300多行。我应该在哪里或如何使用ng if?一般来说,UI中有300行是相当高的,您应该考虑分页或其他形式的过滤,但是如果有充分的理由让所有数据显示给用户,那么要使用ng if,您只需将ng show属性替换为具有相同条件的ng if。这是唯一的改变。它们执行类似的角色,但是如果元素的测试失败,ng show会隐藏该元素,而ng if会将其从DOM中删除。它正在工作。谢谢