在寫項目時我們需要數據渲染,在渲染的過程中有時會發現有些數據一直渲染不到頁面上;
解決此問題我總結了一下幾點
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>