我可以使用 AngularJS 显示来自 JSON 文件的数据,但不是我想要的方式
I can display data from JSON file with AngularJS but not the way I would like to
我正在使用 AngularJS 1.6.4 和 NeDB。
当我尝试获取数据库中的每个用户时,NeDB return 给我一个包含每个用户的 json 文件。
所以我尝试用 AngularJS 显示它们,但是当我尝试用 ng-repeat="user in users"
显示它们时,我只能使用 {{ user[0].name }}
显示它们,但它只显示一个用户而不是每个用户,我会喜欢它通过使用 {{ user.name }}
.
来工作
编辑 : 这就是我的 JSON 文件的样子
[
{ _id: 1,
name: 'Antoine',
createdAt: 2017-04-18T06:42:18.473Z,
updatedAt: 2017-04-18T06:42:18.473Z
},
{ _id: 2,
name: 'Louise',
createdAt: 2017-04-18T06:42:18.478Z,
updatedAt: 2017-04-18T06:42:18.478Z
}
]
编辑 2:尝试@PansulBhatt 的解决方案
Pansul Bhatt's solution
似乎您想遍历整个 JSON 所以与其将其视为列表,不如尝试像对象一样遍历它,例如:
<tr ng-repeat="(key, value) in data">
<td> {{key}} </td> <td> {{ value }} </td>
</tr>
现在您将拥有为您定义的所有键以及与这些键关联的所有值。如果您可以发送 JSON,我可以提供更多帮助,但我认为这会有所帮助。
您的 JSON 无效,因为您的日期应该是字符串。 运行 以下片段(我也使用了日期格式)。
您可以使用ng-repeat
显示它,如下所示:
var myApp = angular.module('myApp', []);
myApp.controller('MyCtrl', ['$scope', function($scope) {
$scope.users = [{
_id: 1,
name: 'Antoine',
createdAt: '2017-04-18T06:42:18.473Z',
updatedAt: '2017-04-18T06:42:18.473Z'
}, {
_id: 2,
name: 'Louise',
createdAt: '2017-04-18T06:42:18.478Z',
updatedAt: '2017-04-18T06:42:18.478Z'
}];
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="MyCtrl">
<div ng-repeat="user in users">
{{user.name}} {{user.createdAt | date: 'dd/MM/yyyy'}}
</div>
</div>
JSFiddle demo
各位好,首先非常感谢大家对我问题的解答!
但我也想道歉,因为这是我的控制器的错误。
我的代码是:
$scope.getAllUsers = function() {
$http.get("users").then(function(response) {
$scope.users = response;
});
}
我通过简单的修改解决了它:
$scope.getAllUsers = function() {
$http.get("users").then(function(response) {
$scope.users = response.data;
});
}
$scope.user=[
{ _id: 1,
name: 'Antoine',
createdAt: 2017-04-18T06:42:18.473Z,
updatedAt: 2017-04-18T06:42:18.473Z
},
{ _id: 2,
name: 'Louise',
createdAt: 2017-04-18T06:42:18.478Z,
updatedAt: 2017-04-18T06:42:18.478Z
}];
我正在使用 AngularJS 1.6.4 和 NeDB。
当我尝试获取数据库中的每个用户时,NeDB return 给我一个包含每个用户的 json 文件。
所以我尝试用 AngularJS 显示它们,但是当我尝试用 ng-repeat="user in users"
显示它们时,我只能使用 {{ user[0].name }}
显示它们,但它只显示一个用户而不是每个用户,我会喜欢它通过使用 {{ user.name }}
.
编辑 : 这就是我的 JSON 文件的样子
[
{ _id: 1,
name: 'Antoine',
createdAt: 2017-04-18T06:42:18.473Z,
updatedAt: 2017-04-18T06:42:18.473Z
},
{ _id: 2,
name: 'Louise',
createdAt: 2017-04-18T06:42:18.478Z,
updatedAt: 2017-04-18T06:42:18.478Z
}
]
编辑 2:尝试@PansulBhatt 的解决方案 Pansul Bhatt's solution
似乎您想遍历整个 JSON 所以与其将其视为列表,不如尝试像对象一样遍历它,例如:
<tr ng-repeat="(key, value) in data">
<td> {{key}} </td> <td> {{ value }} </td>
</tr>
现在您将拥有为您定义的所有键以及与这些键关联的所有值。如果您可以发送 JSON,我可以提供更多帮助,但我认为这会有所帮助。
您的 JSON 无效,因为您的日期应该是字符串。 运行 以下片段(我也使用了日期格式)。
您可以使用ng-repeat
显示它,如下所示:
var myApp = angular.module('myApp', []);
myApp.controller('MyCtrl', ['$scope', function($scope) {
$scope.users = [{
_id: 1,
name: 'Antoine',
createdAt: '2017-04-18T06:42:18.473Z',
updatedAt: '2017-04-18T06:42:18.473Z'
}, {
_id: 2,
name: 'Louise',
createdAt: '2017-04-18T06:42:18.478Z',
updatedAt: '2017-04-18T06:42:18.478Z'
}];
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="MyCtrl">
<div ng-repeat="user in users">
{{user.name}} {{user.createdAt | date: 'dd/MM/yyyy'}}
</div>
</div>
JSFiddle demo
各位好,首先非常感谢大家对我问题的解答! 但我也想道歉,因为这是我的控制器的错误。 我的代码是:
$scope.getAllUsers = function() {
$http.get("users").then(function(response) {
$scope.users = response;
});
}
我通过简单的修改解决了它:
$scope.getAllUsers = function() {
$http.get("users").then(function(response) {
$scope.users = response.data;
});
}
$scope.user=[
{ _id: 1,
name: 'Antoine',
createdAt: 2017-04-18T06:42:18.473Z,
updatedAt: 2017-04-18T06:42:18.473Z
},
{ _id: 2,
name: 'Louise',
createdAt: 2017-04-18T06:42:18.478Z,
updatedAt: 2017-04-18T06:42:18.478Z
}];