Ng-repeat和指令一次扩展一个列表项

时间:2016-07-15 10:05:19

标签: javascript html angularjs directive

我有一个ng-repeat代码,其中包含可扩展的列表项。我想一次扩展一个项目。

我试图这样做的方式是 在html文件中

<div data-ng-repeat="parts in data track by $index">
    <li id="titleHelp" ng-click='setItem($index);">

并且在setItem函数的指令中我想要折叠先前展开的项并展开新项。是否可以使用索引访问指令中的一个重复元素?

谢谢!

2 个答案:

答案 0 :(得分:2)

您目前如何扩展列表项? 我会做的是在单击项目后立即设置变量,并在重复列表中执行

<div data-ng-repeat="parts in data track by $index">
    <li id="titleHelp" ng-click='setItem($index);">
    <div ng-show="$index = selected_item"> <!-- contents --></div>

在你的setItem函数中:

$scope.setItem = function(i) {
    $scope.selected_item = i;
}

答案 1 :(得分:1)

声明一个对象

$scope.obj={selected:null};

之后在ng repeat中添加一个方法,

 $scope.isHide = function (id) {

                            if (id == $scope.obj.selected)
                                return $scope.obj.selected = "all";

                            return $scope.obj.selected = id;
                        }

如果要隐藏div,请使用id调用此方法。如果你需要,可以为li做同样的事情。