AngularJS:如何将ngRepeat与可扩展行

时间:2016-05-12 19:15:32

标签: angularjs angularjs-ng-repeat expand

我有一个表数据库'参数'有4列:'名称','描述',' group'和'价值'。我希望显示此表格的内容按'组'即:最初,当显示表格时,只显示一个组列表,点击其中一个组后,会有一个特定组的参数列表。我继续如下:

        <div class="container">
            <div>
                <div class="col-sm-1 col-xs-12 pull-left">#</div>
                <div class="col-sm-2 col-xs-12">Param Group</div>
            </div>

            <div ng-repeat="param in paramsServer | unique:'paramServerGroup'">
                <div class="row panel panel-body">
                    <div class="col-xs-1">
                        <div class="handpointer glyphicon glyphicon-chevron-right" data-ng-click="collapse($event);getParamsByGroup(param.paramServerGroup)" data-target="#view_{{param.paramServerGroup}}" data-toggle="collapse" 
                             aria-expanded="false">
                        </div>
                    </div>
                    <div class="col-sm-2 col-xs-12" data-ng-bind="param.paramServerGroup"></div>
                </div>

                <div class="collapse" id="view_{{param.paramServerGroup}}">
                    <div class="col-sm-offset-1">
                        <table class="table-condensed responsive-table">
                            <thead>
                            <tr class="row">
                                <th>Name</th>
                                <th>Description</th>
                                <th>Value</th>
                            </tr>
                            </thead>
                            <tbody ng-repeat="pGroup in paramsServerGroup">
                            <tr class="row" >
                                <td data-ng-bind="pGroup.paramServerName"></td>
                                <td data-ng-bind="pGroup.paramServerDescription"></td>
                                <td data-ng-bind="pGroup.paramServerValue"></td>
                            </tr>
                            </tbody>
                        </table>
                    </div>
                </div>
            </div>
        </div>

我的控制员:

$scope.paramsServer = [];
    $scope.paramsServerGroup = [];

     function getParamsServer() {
            return $http.get('/paramsServer')
                .success(function(data) {
                    $scope.paramsServer = data;
                });
        }


    $http.get("/paramsServer")
        .success(function(data) {
            $scope.paramsServer = data;
        });


    $scope.getParamsByGroup = function (group){
        $http.get('/paramsServerByGroup?paramServerGroup='+group)
        .success(function(data) {
            $scope.paramsServerGroup = data;

        });
    }

当我展开一行组时,它可以工作:我有一个特定于该组的参数列表(例如,让我们说第一行)。但是当我尝试扩展第二行组(没有折叠第一行)时,第一个参数列表获取新扩展行的内容。所以我最终得到了两个不同组的重复列表。如果我扩展第三行等等同样的事情。

有任何线索吗?

0 个答案:

没有答案