我有对象列表 使用ng-repeat我将这些对象绑定到HTML元素。 在我的ng-loop中我有一个按钮,当用户点击这个按钮时我想显示下一级HTML元素。 意思是,我有外部重复循环(第1级)和内部重复循环(第2级)。 为了显示内部HTML元素,例如标签,我需要使用ng-show。
但是如果我使用单个变量,所有其他的第二级元素也是可见的。 我只希望特定的HTML可见。
如何将ng-show绑定到变量以及如何为此变量设置值。
答案 0 :(得分:1)
我认为你想要的是在ng-repeat
内定义一个项目级变量。
您可以使用ng-init
设置项级变量。此变量将在为ng-repeat
的每次迭代创建的子范围中创建。
然后,您可以使用按钮切换(或应用任何逻辑)此变量。然后,我建议使用ng-if
而不是ng-show
来阻止为用户不想看到的项生成DOM元素。
<div ng-repeat="outerItem in outerList" ng-init="show = false">
<button ng-click="show = !show">show/hide inner</button>
<div ng-if="show" ng-repeat="innerItem in innerList">
...
</div>
</div>
答案 1 :(得分:0)
根据您的描述很难确切地说出您的意思,但您可以将ng-show绑定到传递名称的函数,然后根据该函数返回true或false。
<div ng-show="checkIfShow('dynamicName')">Something</div>
$scope.checkIfShow = function(name) {
// check name for whatever you are looking for to show/hide and return true/false
};
您可以轻松地在JS中创建一个地图,其名称为&#39;传入是关键,并与之相关。