Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript NG Repeat生成包含动态类的列表_Javascript_Angularjs_Loops - Fatal编程技术网

Javascript NG Repeat生成包含动态类的列表

Javascript NG Repeat生成包含动态类的列表,javascript,angularjs,loops,Javascript,Angularjs,Loops,我试图将与第一个循环的索引匹配的任何项打印为li 例如:第一个循环将li分类为cat1_li,第二个循环将li分类为cat2_li,第三个循环将li分类为cat3_li 但是,我能得到的最接近的结果会在单独的列表中打印出来。 在其他ng重复中使用ng重复时,我真的很难找到问题所在。我能理解它为什么要打印多个列表,但不能理解如何纠正这种行为 有人愿意看一看吗 HTML: 如果要在嵌套的ng repeat中使用类别索引,可以使用$parent.$index: var-app=angular.mod

我试图将与第一个循环的索引匹配的任何项打印为li

例如:第一个循环将li分类为cat1_li,第二个循环将li分类为cat2_li,第三个循环将li分类为cat3_li

但是,我能得到的最接近的结果会在单独的列表中打印出来。 在其他ng重复中使用ng重复时,我真的很难找到问题所在。我能理解它为什么要打印多个列表,但不能理解如何纠正这种行为

有人愿意看一看吗

HTML:


如果要在嵌套的
ng repeat
中使用类别索引,可以使用
$parent.$index

var-app=angular.module('app',[]);
app.controller('MainController',['$scope',
职能($范围){
$scope.taskCategories={
类别:[
“工作”,
“家务活”,
"学习",,
“提升”
]
};
$scope.tasklist={
任务:[{
标题:“电子邮件格雷戈里”,
类别:“工作”
}, {
标题:“清洁厨房”,
类别:“家务”
}, {
标题:“AngularJS”,
类别:“学习”
}, {
标题:“软管车”,
类别:“家务”
}, {
标题:“电子邮件Jethro”,
类别:“工作”
}, {
标题:“400磅”,
类别:“起重”
}]
};
}
]);
.cat1\u li{
背景颜色:黄色;
}
李国章议员{
背景色:青色;
}
李国章议员{
背景颜色:粉红色;
}
李国章议员{
背景色:石灰;
}

    {{cat}}

每个
ng repeat
使用传递的数据创建一个子作用域,并在该作用域中添加一个额外的
$index
变量

因此,您需要做的是到达父范围,并使用该
$index

HTML:

<li ng-repeat="tasks in tasklist.tasks | orderBy:'category' | filter: {category: cat}" class="cat{{ $parent.$index + 1 }}_li">
  • 呈现的html是什么,期望的是什么?任务应该是cat的子任务吗?你的对象结构是什么样子的?呈现的HTML可以在这里找到:我希望它呈现的方式可以在这里找到:基本上,我希望所有“工作”类别(或第一个类别)的内容都以“cat1_li”等类结束,并且它们都在同一个无序列表中。这很好,我根本不知道$parent的事,谢谢!你知道我怎样才能把这些循环放到同一个列表中吗?比如:jsfiddle.net/3f2anqva
    app.controller('MainController', ['$scope', function($scope) {
    
    
    $scope.taskCategories = {
        categories: [
            'work',
            'chores',
            'learning',
            'lifting'
        ]
    };
    
    $scope.tasklist = {
        tasks: [{
                title: 'Email Gregory',
                category: 'work'
            }, {
                title: 'Clean the Kitchen',
                category: 'chores'
            }, {
                title: 'AngularJS',
                category: 'learning'
            }, {
                title: 'Hose Car',
                category: 'chores'
            }, {
                title: 'Email Jethro',
                category: 'work'
            }, {
                title: '400 lbs',
                category: 'lifting'
            }
        ]
    };
    }]);
    
    <li ng-repeat="tasks in tasklist.tasks | orderBy:'category' | filter: {category: cat}" class="cat{{ $parent.$index + 1 }}_li">