zoukankan      html  css  js  c++  java
  • 解决从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{
                 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>
  • 相关阅读:
    论文总结
    20179212 2017-2018-2 《密码与安全新技术》课程总结
    20179212 2017-2018-2 《密码与安全新技术》第6周作业
    SM234
    2017-2018-2 20179212 《网络攻防》 作业
    20179212 2017-2018-2 《密码与安全新技术》第5周作业
    第十周作业 缓冲区溢出攻防研究
    密码与安全新技术
    9th
    8th
  • 原文地址:https://www.cnblogs.com/yhyanjin/p/7214776.html
Copyright © 2011-2022 走看看