Php 在angular中是否有不';最初不能在浏览中加载数据,但只能在单击时加载

Php 在angular中是否有不';最初不能在浏览中加载数据,但只能在单击时加载,php,angularjs,json,angularjs-directive,angularjs-scope,Php,Angularjs,Json,Angularjs Directive,Angularjs Scope,当我检查时,即使我没有单击选项卡,也会在控制台中显示此数据。当我单击选项卡时,会在浏览器中显示此数据。当在第页中检查时单击控制台时,不应显示此信息。仅当我单击tab时才加载数据 对象{type:“FeatureCollection”,元数据:对象,功能:数组[11],bbox:数组[6]}bbox:数组[6]功能:数组[11]元数据:Objecttype:“FeatureCollection”原型:对象 here is my code.. <body ng-controller="C

当我检查时,即使我没有单击选项卡,也会在控制台中显示此数据。当我单击选项卡时,会在浏览器中显示此数据。当在第页中检查时单击控制台时,不应显示此信息。仅当我单击tab时才加载数据

对象{type:“FeatureCollection”,元数据:对象,功能:数组[11],bbox:数组[6]}bbox:数组[6]功能:数组[11]元数据:Objecttype:“FeatureCollection”原型:对象

 here is my code..
 <body  ng-controller="CountryCtrl">
   <div  ng-app ng-init="tab=1">
   <div class="cb" ng-click="tab = 1">tab 1</div>
   <div class="cb" ng-click="tab = 2">tab 2</div>



    <div ng-show="tab == 1">
     <p>hellloollllllllllllo</p>
    </div>


   <div ng-show="tab == 2">

        <h2>Angular.js JSON Fetching Example</h2>




            <table border=1>
            <tr>
            <th>type</th>
            <th>properties_mag</th>
            <th>properties_place</th>
            <th>properties_time</th>
            <th>properties_upated</th>
            <th>properties_tz</th>

            </tr>
            <tr ng-repeat="type in country ">

            <td>{{type.type}}</td>
            <td>{{type.properties.mag}} </td>
            <td> {{type.properties.place}} </td>
            <td> {{type.properties.time}} </td>
            <td> {{type.properties.updated}} </td>
            <td> {{type.properties.tz}} </td>

            <tr ng-repeat="cor in features.geometry.coordinates ">
            <td> {{cor}} </td>
            </tr>
            </table>
        </div>

我建议您只需在使用ng click单击第二个选项卡时调用加载JSON数据的函数。这样,除非单击选项卡,否则无法加载它

你可以改变:

<div class="cb" ng-click="tab = 2">tab 2</div>
请确保也应用了我之前建议的HTML更改,应该可以

问题出在别处,如果您检查控制台,您可能会看到angular在为
$scope.coor
分配变量时出现错误,因为您试图在对象数组中分配对象的属性

检查此笔以获取解决方案:


然后,您可以根据需要调整HTML。

我建议您只需在使用ng click单击第二个选项卡时调用加载JSON数据的函数。这样,除非单击选项卡,否则无法加载它

你可以改变:

<div class="cb" ng-click="tab = 2">tab 2</div>
请确保也应用了我之前建议的HTML更改,应该可以

问题出在别处,如果您检查控制台,您可能会看到angular在为
$scope.coor
分配变量时出现错误,因为您试图在对象数组中分配对象的属性

检查此笔以获取解决方案:


然后,您可以根据需要调整HTML。

您可以向我们展示一些您当前拥有的代码吗?下面我已经发布了我正在使用的代码,您可以向我们展示一些您当前拥有的代码吗?下面我已经发布了我正在使用的代码。控制台仍然显示json数据,这意味着浏览器正在加载数据:(确保只调用在switchTabAndLoadData()中加载数据的函数)。您可以显示控制器代码吗?这将有助于理解问题。您需要更新控制器代码以实现所需,请尝试我发布的代码。我已更新了上面的答案。它可以工作,但每次我单击tab时,它都会提取数据,这意味着一旦我单击tab数据,它就不应该每次都显示加载的数据控制台中的时间。它应该只在我单击tab时加载一次,而不是每次单击tab时加载一次,然后在单击选项卡时检查是否加载了数据。请参阅上面更新代码中的if语句。控制台仍然显示json数据,这意味着浏览器正在加载数据:(确保只调用在switchTabAndLoadData()中加载数据的函数)。您可以显示控制器代码吗?这将有助于理解问题。您需要更新控制器代码以实现所需,请尝试我发布的代码。我已更新了上面的答案。它可以工作,但每次我单击tab时,它都会提取数据,这意味着一旦我单击tab数据,它就不应该每次都显示加载的数据控制台中的时间。它应该只在我单击tab时加载一次,而不是每次单击tab时加载一次,然后在单击该选项卡时检查是否加载了数据。请参阅上面更新代码中的if语句。
<div class="cb" ng-click="switchTabAndLoadData()">tab 2</div>
         var countryApp = angular.module('countryApp',[]);
          countryApp.controller('CountryCtrl', function ($scope, $http){

         var loadData = function(){  
$http.get('http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/4.5_day.geojson').success(function(data) {
              console.log(data);
              $scope.country = data.features;
              $scope.coor=data.features.geometry.coordinates;
              console.log($scope.country);
            });
         }
         $scope.switchTabAndLoadData = function(){
           $scope.tab=2;
           if(angular.isUndefined($scope.country) || angular.isUndefined($scope.coor)){ 
               loadData();
           }
         }
          });