如何在ng-repeat中设置作用域变量

How to set scope variable inside ng-repeat?

本文关键字:设置 作用域 变量 ng-repeat      更新时间:2023-09-26

我想确定是否有重复的元素被呈现

我写这个代码

<div ng-show="anyRendered">Any has been rendered</div>
 <div ng-show="anyFilterActive">ANY FILTER IS ACTIVE</div>
 <div class="selected-filter-value" ng-if="filter.name && filterCtrl.isActiveFilter(filter)" data-ng-repeat="(name, filter) in filterOptions">
    <span ng-init="anyFilterActive = true;">{{filter.name}}:</span>
</div>

但是这段代码不起作用。我也试着写$parent。

尝试使用ng-if

<div ng-show="filterOptions.length > 0">Any has been rendered</div>
<div ng-if="filterOptions.length > 0" ng-repeat="(name, filter) in filterOptions">
<span></span>
</div>

就用$index

<div ng-repeat="(name, filter) in filterOptions">
<span ng-show="$index > 0"></span>
</div>

ngRepeat Docs $index

在ng-repeat文档中的示例中,你可以看到$index

的用法

你不能在模板中编写代码逻辑:所有的代码都必须在你的控制器、过滤器、指令和服务中。ng-init指令只是在这里,以便您可以创建别名,使您的模板更简单。

过滤器和指令包含"表示代码",控制器和服务包含"业务相关代码"。

你可以创建一个过滤器来知道对象是否为空(从另一个问题中过滤代码),并与ng-if, ng-show…一起使用

生成的模板:

<div ng-if="filterOptions|empty">
     Nothing to show! 
</div>
<div ng-repeat="(k, v) in filterOptions">
     {{k}}, {{v}}
</div>