Javascript 是否可以在angular中生成许多$scope变量
我想从服务器接收一些JSON数据并按如下方式打印: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=
<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;
});