Javascript 是否可以在angular中生成许多$scope变量

Javascript 是否可以在angular中生成许多$scope变量,javascript,angularjs,Javascript,Angularjs,我想从服务器接收一些JSON数据并按如下方式打印: <div ng-app="myApp" ng-controller="pastController"> <table> <tr ng-repeat="x in names"> <td>{{ x.shops }}</td> </tr> </table> <table> <tr ng-repeat=

我想从服务器接收一些JSON数据并按如下方式打印:

<div ng-app="myApp" ng-controller="pastController">
  <table>
    <tr ng-repeat="x in names">
      <td>{{ x.shops }}</td>
    </tr>
  </table>

  <table>
    <tr ng-repeat="y in names1">
      <td>{{ y.shops }}</td>
    </tr>
  </table>
</div>

<table>
  <tr ng-repeat="z in names2">
    <td>{{ z.shops }}</td>
  </tr>
</table>
下面是我的json响应:

     {
       "pastData" : 
         [
           {"id":1, "shopPlace":"warsaw", "shopDate":"2016-08-10", "shops":"milk"},
           {"id":2, "shopPlace":"warsaw", "shopDate":"2016-09-10", "shops":"table"}
         ],
      "futureData" : 
        [
          {"id":3, "shopPlace":"krakow", "shopDate":"2016-12-10", "shops":"bread"}, 
          {"id":4, "shopPlace":"kielce", "shopDate":"2016-11-20", "shops":"water"}
        ],
      "presentData" : 
        [
          {"id":5, "shopPlace":"wroclaw", "shopDate":"2016-11-07", "shops":"sugar"}
        ] 
      }

对于名称,一切都可以正常工作,仅对于名称1,它显示:{{y.shops}}和名称2:{{z.shops}}

您的html标记不正确。最后一个表不在控制器的范围内。当标记的格式正确时,很容易看到这一点

<div ng-app="myApp" ng-controller="pastController">
  <table>
    <tr ng-repeat="x in names">
      <td>{{ x.shops }}</td>
    </tr>
  </table>

  <table>
    <tr ng-repeat="y in names1">
      <td>{{ y.shops }}</td>
    </tr>
  </table>
</div>

<table>
  <tr ng-repeat="z in names2">
    <td>{{ z.shops }}</td>
  </tr>
</table>

{{x.shops}
{{y.shops}
{{z.shops}}

我立即看到的一个问题是,第三个表的标记在div之外,angular应用程序和控制器具有作用域,它应该在div之内。但是,如果您的第二个表也没有显示,则肯定存在另一个问题。这是一个正在工作的plunker,演示了一切正在工作。请注意,数据是硬编码的,而不是从API获取的:


{{x.shops}

{{y.shops}
{{z.shops}} var-app=angular.module('myApp',[]); app.controller('pastController',函数($scope,$http){ 风险值数据={ “pastData”:[{“id”:1,“shopPlace”:“warsaw”,“shopDate”:“2016-08-10”,“shops”:“milk”},{“id”:2,“shopPlace”:“warsaw”,“shopDate”:“2016-09-10”,“shops”:“table”}], “未来数据”:[{“id”:3,“shopPlace”:“krakow”,“shopDate”:“2016-12-10”,“shops”:“bread”},{“id”:4,“shopPlace”:“kielce”,“shopDate”:“2016-11-20”,“shops”:“water”}], “presentData”:[{“id”:5,“shopPlace”:“wroclaw”,“shopDate”:“2016-11-07”,“shops”:“sugar”}] }; $scope.names=data.pastData; $scope.names2=data.presentData; $scope.names1=data.futureData; });
看起来您的子绑定已关闭。在第二次/第三次ng-repeats中应该是y.shops和z.shops。你应该在你的问题中包含一个JSON响应示例。我已经将html更改为x,y,z,但仍然不起作用。你似乎误解了请求JSON数据的原因。问题完全围绕着为什么
presentData
futureData
没有被绑定,因此查看该数据中的内容是完全解决问题所必需的。提供有效的数据,然后缩写无效的数据并不能提供问题的答案
<div ng-app="myApp" ng-controller="pastController">
  <table>
    <tr ng-repeat="x in names">
      <td>{{ x.shops }}</td>
    </tr>
  </table>

  <table>
    <tr ng-repeat="y in names1">
      <td>{{ y.shops }}</td>
    </tr>
  </table>
</div>

<table>
  <tr ng-repeat="z in names2">
    <td>{{ z.shops }}</td>
  </tr>
</table>
<div ng-app="myApp" ng-controller="pastController">
   <table>
    <tr ng-repeat="x in names">
      <td>{{ x.shops }}</td>
    </tr>
  </table>
  <hr/>
  <table>
    <tr ng-repeat="y in names1">
      <td>{{ y.shops }}</td>
    </tr>
  </table>
  <hr/>
  <table>
    <tr ng-repeat="z in names2">
      <td>{{ z.shops }}</td>
    </tr>
  </table>
</div>

var app = angular.module('myApp', []);

app.controller('pastController', function($scope, $http) {
    var data =  {
        "pastData" : [{"id":1, "shopPlace":"warsaw", "shopDate":"2016-08-10", "shops":"milk"}, {"id":2, "shopPlace":"warsaw", "shopDate":"2016-09-10", "shops":"table"}],
        "futureData" : [{"id":3, "shopPlace":"krakow", "shopDate":"2016-12-10", "shops":"bread"}, {"id":4, "shopPlace":"kielce", "shopDate":"2016-11-20", "shops":"water"}],
        "presentData" : [{"id":5, "shopPlace":"wroclaw", "shopDate":"2016-11-07", "shops":"sugar"}]
    };

    $scope.names = data.pastData;
    $scope.names2 = data.presentData;
    $scope.names1 = data.futureData;
});