Javascript AngularJs,将列表按各自的标题按手风琴分开

Javascript AngularJs,将列表按各自的标题按手风琴分开,javascript,angularjs,accordion,Javascript,Angularjs,Accordion,我是angularJs的新手,希望在angularJs中重写一个应用程序,但我被困在这一点上: 我有一个带有以下标记的定制手风琴: <div class="accord_main_wrap" ng-controller="catController"> <div class="accord_item_wrap" ng-repeat="head in heads"> <p class="accord_head" data-notvisible=

我是angularJs的新手,希望在angularJs中重写一个应用程序,但我被困在这一点上:

我有一个带有以下标记的定制手风琴:

<div class="accord_main_wrap" ng-controller="catController">
    <div class="accord_item_wrap" ng-repeat="head in heads">
        <p class="accord_head" data-notvisible="true">{{head.text}}</p>
        <div class="accord_content_wrap">
            <ul>
                <li ng-repeat="sub in subs">{{sub.text}}</li> 
            </ul>
        </div>
    </div>
</div>
function catController($scope, $http) {
    $http.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";
    $scope.heads = [];
    $scope.subs = [];
    $http.post(apiURL,$.param({maincat:"true"}))
    .success(function(mainCatData,status,headers,config){
        for(var d=0;d<mainCatData.cat.length;d++){
            $scope.heads.push(mainCatData.cat[d]);
        }
        for(var h=0;h<$scope.heads.length;h++){
            $http.post(apiURL,$.param({subcat:$scope.heads[h].id}))
                .success(function(subCatdata,stat,hea,conf){
                        for(var s=0;s<subCatdata.cat.length;s++){
                            $scope.subs.push(subCatdata.cat[s]);
                        }
                });
        }
    });

{{{head.text}

  • {{sub.text}
控制器:

<div class="accord_main_wrap" ng-controller="catController">
    <div class="accord_item_wrap" ng-repeat="head in heads">
        <p class="accord_head" data-notvisible="true">{{head.text}}</p>
        <div class="accord_content_wrap">
            <ul>
                <li ng-repeat="sub in subs">{{sub.text}}</li> 
            </ul>
        </div>
    </div>
</div>
function catController($scope, $http) {
    $http.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";
    $scope.heads = [];
    $scope.subs = [];
    $http.post(apiURL,$.param({maincat:"true"}))
    .success(function(mainCatData,status,headers,config){
        for(var d=0;d<mainCatData.cat.length;d++){
            $scope.heads.push(mainCatData.cat[d]);
        }
        for(var h=0;h<$scope.heads.length;h++){
            $http.post(apiURL,$.param({subcat:$scope.heads[h].id}))
                .success(function(subCatdata,stat,hea,conf){
                        for(var s=0;s<subCatdata.cat.length;s++){
                            $scope.subs.push(subCatdata.cat[s]);
                        }
                });
        }
    });
函数catController($scope,$http){
$http.defaults.headers.post[“内容类型”]=“应用程序/x-www-form-urlencoded”;
$scope.heads=[];
$scope.subs=[];
$http.post(apirl,$.param({maincat:“true”}))
.success(函数(maincata、状态、标题、配置){

对于(var d=0;d,
$scope.heads
中的每个项都应该有一个子集合,名为
subs

function catController($scope, $http) {
    $http.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";
    $scope.heads = [];
    $http.post(apiURL,$.param({maincat:"true"}))
    .success(function (mainCatData) {
        for (var d = 0; d < mainCatData.cat.length; d++) {
            var head = mainCatData.cat[d];
            $scope.heads.push(head);
            getSubs(head);
        }
    });

    function getSubs(head) {
        head.subs = [];
        $http.post(apiURL, $.param({subcat: head.id}))
            .success(function (subCatdata) {
                    for (var s = 0; s < subCatdata.cat.length; s++) {
                        head.subs.push(subCatdata.cat[s]);
                    }
            });
    }
}
函数catController($scope,$http){
$http.defaults.headers.post[“内容类型”]=“应用程序/x-www-form-urlencoded”;
$scope.heads=[];
$http.post(apirl,$.param({maincat:“true”}))
.成功(功能(mainCatData){
对于(变量d=0;d
哦,好的..所以调用应该在主头的for循环中进行..并合并em..这就清楚了..谢谢。实际上你也可以在单独的for循环中进行,但这不是必需的。关键是每个
都有一个
subs
数组,而不是整个
$scope
的1个
subs
数组。是的。。我尝试过这样做,但是我无法管理head和sub之间的关系,因为调用是异步的,我不想进入闭包…而将head作为arg传递是好的。。