首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于数据的分层列表按钮

基于数据的分层列表按钮
EN

Stack Overflow用户
提问于 2015-10-22 10:42:02
回答 1查看 26关注 0票数 0

我想要一个指令,它将呈现一个基于类别层次名称数组的按钮列表。一个按钮将选择类别,如果它没有更多的孩子,或者如果它有孩子,将向下钻到下一个级别。

i/p:

{名称:电子“}”},{名称:“兴趣爱好”},{名称:“电子计算机”},{名称:“电子计算机类软件”},{名称:“电子产品类耳机”}}

上面的数组将首先呈现2个按钮,单击电子按钮将呈现新的按钮:计算机和耳机等等。

我试过:

代码语言:javascript
复制
  controller: ['$scope', function($scope) {
    $scope.category= [];
    $scope.init = function() {
        for(var index=0; index<$scope.option.data.length; index++) {
            if($scope.option.data[index].name.indexOf("|") === -1){
                $scope.category.push($scope.option.data[index]);
            }
        }
    }
    $scope.init();

    $scope.drillDown=function(value){
        // console.log(value);
        var count = 0;
        var arrVal=[];
        arrVal=value
         $scope.category= [];

         for(var index=0; index<$scope.option.data.length; index++) {

            if($scope.option.data[index].name.indexOf(value + "|") !== -1){

                for(var i=0; i< $scope.option.data[index].name.length; i++){    
                if($scope.option.data[index].name[i] == '|'){
                    count+=1;
                    }
                }
                if(count === 1){

                         $scope.category.push($scope.option.data[index]);
                    }     

                 count = 0;
        }


        }
    }
}]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-22 11:24:20

请检查下面的代码段:

代码语言:javascript
复制
        $scope.drillDown = function(event){

                $scope.delimiter = '|';  
                $scope.buttons = [];
                $scope.delimiterCount = (event.n.split($scope.delimiter).length - 1);
                $scope.flagAll = false;
                angular.forEach($scope.option.data,function(value,index){
                    if($scope.option.data[index].name.indexOf(event.n+$scope.delimiter) !== -1){
                        $scope.splitData = $scope.option.data[index].name.split($scope.delimiter);
                        if($scope.flagAll == false){
                            $scope.buttons.push("All "+$scope.splitData[$scope.delimiterCount]);
                            $scope.flagAll = true;
                        }
                        if(($scope.splitData.length-1) > ($scope.delimiterCount+1)){
                            //$scope.buttons.push("All "+$scope.splitData[$scope.delimiterCount]);
                        }
                        else{
                            $scope.buttons.push($scope.option.data[index].name);
                        }
                    }
                });
            }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33279115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档