Javascript AngularJS:更改特定ng重复项的ng if值?

Javascript AngularJS:更改特定ng重复项的ng if值?,javascript,angularjs,Javascript,Angularjs,我对angular和javascript基本上是新手,所以这可能是一个一般的javascript问题: 我有一个通过ng repeat创建的div列表,每个div都包含一个ng if=“expanded==true”,通过单击一个按钮并运行下面的函数,该值变为true 如何仅针对该div内的特定ng if将ng if值更改为true?当前设置更改扩展为等于真,然后显示所有ng if材质 //HTML <div class="panel-body"> <

我对angular和javascript基本上是新手,所以这可能是一个一般的javascript问题:

我有一个通过ng repeat创建的div列表,每个div都包含一个ng if=“expanded==true”,通过单击一个按钮并运行下面的函数,该值变为true

如何仅针对该div内的特定ng if将ng if值更改为true?当前设置更改扩展为等于真,然后显示所有ng if材质

//HTML

    <div class="panel-body">
        <span ng-if="expanded == false">This property is missing several documents. Click <a ng-click="buyChecklist()">here</a> to complete this profile.</span>
    </div>  

    <ul class="list-group" ng-if="expanded == true">
        <li class="list-group-item text-right" ng-repeat="reqs in buyReqs">
            <span class="pull-left">{{reqs.name}}</span>
            <span><a class="btn btn-sm btn-primary" href="">Upload</a></span>
        </li>
    </ul>

//Controller.js 

    $scope.buyChecklist = function() {
        $scope.expanded = true; 
    }
//HTML
此属性缺少几个文档。点击


//Controller.js
$scope.buyChecklist=函数(){
$scope.expanded=true;
}

由于您希望更改特定div的扩展属性,这表明您实际上需要每个div的扩展状态,而不仅仅是单个扩展状态。因此,您需要一个数组:

expanded = [false, false, false, false]; //one per div
然后在html模板中,使用ng repeat循环的当前索引检查特定div的扩展索引:

<span ng-if="expanded[$index]"> .. </span>
。。
请注意
$index
值的使用。此变量在ng repeat循环中可用


循环中提到了此变量和其他变量(即$first、$last、$偶数、$odd等)

这可能适用于固定数量的div,但是如果ng repeat是基于动态数据库的呢?当使用扩展[$index]==true或扩展!=正确,未定义!=也是这样。