将唯一标识符传递给AngularJS崩溃?

时间:2014-03-26 14:50:04

标签: javascript angularjs

我有一张桌子,当我点击桌子的顶行时,我有一个我想要折叠的span元素。我正在使用anuglar函数collapse

到目前为止,这工作正常,但如果我有三个相同的表,单击一个顶行将折叠所有三​​个表。

我能以某种方式将一些唯一标识符传递给collpase函数吗?

HTML

<div ng-repeat="detail in details.detail">
    <div class="my_table">
        <table>
            <tbody>
                <tr class="top_row" ng-click="isCollapsed = !isCollapsed">
                    <td colspan="2">                            
                        <span class="f_name">
                            {{ details.f_name }}
                        </span>
                        <span class="l_name" >
                            {{ details.l_name }}
                        </span>
                    </td>
                </tr>
                <tr>
                    <td class="detail">
                        <span class="_address" collapse="isCollapsed">
                            {{ details.address }}
                        </span>
                    </td>
                </tr>
            </tbody>
        </table>
    </div>
</div>

JS

function CollapseCtrl($scope) {
    $scope.isCollapsed = false;
}

1 个答案:

答案 0 :(得分:1)

您可以在$index中使用特殊变量ng-repeat,也可以将数组用于模型

<div ng-repeat="detail in details.detail">
    <div class="my_table">
        <table>
            <tbody>
                <tr class="top_row" ng-click="isCollapsed[$index] = !isCollapsed[$index]">
                    <td colspan="2">                            
                        <span class="f_name">
                            {{ details.f_name }}
                        </span>
                        <span class="l_name" >
                            {{ details.l_name }}
                        </span>
                    </td>
                </tr>
                <tr>
                    <td class="detail">
                        <span class="_address" collapse="isCollapsed[$index]">
                            {{ details.address }}
                        </span>
                    </td>
                </tr>
            </tbody>
        </table>
    </div>
</div>


function CollapseCtrl($scope) {
    $scope.isCollapsed = [];
}