解決從json文件中獲取不到數據的問題


   在寫項目時我們需要數據渲染,在渲染的過程中有時會發現有些數據一直渲染不到頁面上;

 

 解決此問題我總結了一下幾點

  1、首先先查找自己的json文件路徑是否正確,

    

錯誤示范:

 $http.get(index.json).success(function(data){
                $scope.Y_box=data.Y_box;
            })


正確規范: 
$http.get('index.json').success(function(data){
                $scope.Y_box=data.Y_box;
            })

 

  2、查看從后台獲取的數據是否存在,查看方法:

app.controller('test',function($scope,$http){
            $http.get('json.json').success(function(data){
                $scope.Y_box=data.Y_box;
                alert('$scope.Y_box');//通過彈框來查看是否為獲取到數據,如果彈出undefined,那么說明沒有獲取到數據,請從新獲取
            })
        })

  3、查看HTML頁面是否綁定正確:

<!--//有時會犯這樣的錯誤-->
    <h4>{item.h4}</h4>
    
    <!--正確寫法-->
    <h4>{{item.h4}}</h4><!--//獲取數組里的 h4 數據-->

   4、在渲染數組里數組時,是否渲染的是當前數組里的數組:

json文件:

 

{
  "Y_box":[
    {
      "h4":"我是數組1",
      "Y_BoxMain":[
        {"txt":"數組1里的數組1"},
        {"txt":"數組1里的數組2"},
        {"txt":"數組1里的數組3"}
      ]
    },
    {
      "h4":"我是數組2",
      "Y_BoxMain":[
        {"txt":"數組2里的數組1"},
        {"txt":"數組2里的數組2"},
        {"txt":"數組2里的數組3"}
      ]
    },
    {
      "h4":"我是數組3",
      "Y_BoxMain":[
        {"txt":"數組3里的數組1"},
        {"txt":"數組3里的數組2"},
        {"txt":"數組3里的數組3"}
      ]
    }
  ]
}

 

我們舉個例子看看,你是否出現這樣的錯誤:

 $http.get('json.json').success(function(data){
                $scope.Y_box=data.Y_box;
//錯誤示范
                $scope.Y_box1=data.Y_box.Y_BoxMain;//這樣是獲取不到的,因為data.Y_box是一個數組,沒有具體的數據,系統無法判斷

//正確規范
          // 你必須獲取數組里的具體數據,如獲取第一個數組里的數據
                $scope.Y_box1=data.Y_box[0].Y_BoxMain;
              
            })

 

以下是一個渲染數據的完整代碼:

//html:



<!DOCTYPE html>
<html ng-app="mk">
<head lang="en">
    <meta charset="UTF-8">
    <title></title>

    <style>
        .Y_box{
            width: 300px;
            height: 200px;
            border: 1px solid coral;
        }
    </style>

    <script src="angular.js"></script>
    <script>
        var app=angular.module("mk",[]);
        app.controller('test',function($scope,$http){
            $http.get('json.json').success(function(data){
                $scope.Y_box=data.Y_box;
            })
        })
    </script>
</head>
<body ng-controller="test">
<div class="Y_box" ng-repeat="item in Y_box">
   
    <h4>{{item.h4}}</h4><!--//獲取數組里的 h4 數據-->
    <div class="Y_BoxMain">
        <ul>
            <!--//獲取當前數組里的數組===item.Y_BoxMain-->
            <li ng-repeat="Data in item.Y_BoxMain">{{Data.txt}}</li>
        </ul>
    </div>
</div>

</body>
</html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM