在具有多个阵列的阵列上进行ng-repeat

时间:2017-01-06 09:28:16

标签: javascript angularjs arrays

这是我的angularjs函数

$scope.getSpecificCat = function(p_cat) {
    $http.get(url+'getSpecificCatJson/' + p_cat).success(function(data){         
    $scope.specifics = data;         
  }).error(function(){
    //alert('there is some errror while fetching product ');
  });   
}

细节包含两个数组,如[Array[2],Array[2]]。现在我的问题是如何在ng-repeat中显示这些数组值。我想详细说明我的问题 第一个数组包含数据,如0:object,而object有product_name:" tv" 而第二个数组有0:" 30" 这是我的模态  public function get_specific_cat($ p_cat)

{                 
                 $current_date = date('d-M-Y');
                 $current_new  = strtotime($current_date);
                 $this->db->select("*, ((p_bid/total_bid)*100) as progress");
                // print_r($current_new);die;
                 $this->db->where('p_cat',$p_cat); 
                 $this->db->where('p_status','active');
        $query = $this->db->get('product');
        $data  = $query->result();
         $percent_array =[];

          foreach ($data as $row) {
            $id  = $row->p_id;
            $ppr = $row->pp_date;
            $pcr = $row->pc_date;
            $ppn = strtotime($ppr);
            $pcn = strtotime($pcr);
            $p_name = $row->p_name;
             if($row->p_cat == 'diamond')
             {
              return $data;
             }
             else if($row->p_cat == 'gold' && $ppr < 1)
            {
               return $data ;
            }
            else if(!empty($pcn && $ppn) && $pcn != $ppn)
            {
            $percent_array[] = (($current_new-$ppn) * 100)/($pcn-$ppn);
          //  $percent_data = array('0' => $percent_array , );

          } 


          }

             $percent_data = array('0' =>$data, '1' => $percent_array);
             return $percent_data; 


}

我的魔杖百分比以及ng-repeat的数据

2 个答案:

答案 0 :(得分:2)

所以你的数据看起来像这样:

$scope.items = [
    ['Val1', 'Val2'],
    ['Val1', 'Val2']
];

您可以使用2 ng-repeat循环播放,如下所示:

<div ng-repeat="i in items">
    <div ng-repeat="j in i">{{j}}</div>
</div>

Demo on JSFiddle

答案 1 :(得分:0)

如果要迭代主数组中所有数组中的所有项目:

$scope.specifics = data;
$scope.specificsFlat = (data || []).reduce(function(mainArray, array) { 
  return mainArray.concat(array);
}, []);

然后你可以使用specificsFlat

<div ng-repeat="specific in specificsFlat">
  {{ specific.whatever }}
</div>

这将通过获取子数组中的值并将它们全部放在同一级别来展平主阵列。