在对象数组上应用 ng-repeat 显示 [Object object]
Applying ng-repeat on array of objects displays [Object object]
我有一个看起来像这样的控制器:
var PlayersController = function($scope, $http) {
$http.get('/Players/Index').success(function (data) {
console.log(data);
$scope.players = data;
});
}
PlayersController.$inject = ['$scope','$http'];
我的路线是这样的:
var KorpenApp = angular.module('KorpenApp', ['ngRoute']);
KorpenApp.controller('HomeController', HomeController);
KorpenApp.controller('PlayersController', PlayersController);
var configFunction = function($routeProvider) {
$routeProvider
.when('/Players', { templateUrl: 'Players/Index', controller: PlayersController })
.otherwise({redirectTo: '/'});
}
configFunction.$inject = ['$routeProvider'];
KorpenApp.config(configFunction);
我的观点(Players/Index)是这样的:
<p>TEST</p>
<p>{{players.length}}</p>
<ul ng-repeat="player in players">
<li ng-repeat="prop in player">
{{prop}}
</li>
</ul>
播放器控制器中的控制台日志记录了一个包含 5 个对象的数组,这是应该的。这些对象包含许多我试图显示的属性。但是,我的视图只显示:
[object Object],[object Object],[object Object],[object Object],[object Object]
似乎视图中的所有内容都被忽略了,所以显然我做错了什么。我会认为至少包含 "TEST" 的段落会显示,即使玩家数组有问题。所以我的两个问题是:
- 为什么我的视图显示“[object Object],[object Object],[object Object],[object Object],[object Object]”?
- 为什么我放入 Players/Index 的内容没有显示?
因为这就是打印对象的方式。如果您想要此对象的 json 表示,请使用
console.log(angular.toJson(data));
不好说。也许视图实际上不在此 URL。查看浏览器开发工具的“网络”选项卡,查看返回的内容。
您需要执行以下操作:
var PlayersController = function($scope, $http) {
$http.get('/Players/Index').success(function (data) {
console.log(data);
$scope.players = data;
});
}
PlayersController.$inject = ['$scope','$http'];
并且在视图中:
<p>TEST</p>
<p>{{players.length}}</p>
<ul ng-repeat="player in players">
{{player.prop}}
</ul>
我有一个看起来像这样的控制器:
var PlayersController = function($scope, $http) {
$http.get('/Players/Index').success(function (data) {
console.log(data);
$scope.players = data;
});
}
PlayersController.$inject = ['$scope','$http'];
我的路线是这样的:
var KorpenApp = angular.module('KorpenApp', ['ngRoute']);
KorpenApp.controller('HomeController', HomeController);
KorpenApp.controller('PlayersController', PlayersController);
var configFunction = function($routeProvider) {
$routeProvider
.when('/Players', { templateUrl: 'Players/Index', controller: PlayersController })
.otherwise({redirectTo: '/'});
}
configFunction.$inject = ['$routeProvider'];
KorpenApp.config(configFunction);
我的观点(Players/Index)是这样的:
<p>TEST</p>
<p>{{players.length}}</p>
<ul ng-repeat="player in players">
<li ng-repeat="prop in player">
{{prop}}
</li>
</ul>
播放器控制器中的控制台日志记录了一个包含 5 个对象的数组,这是应该的。这些对象包含许多我试图显示的属性。但是,我的视图只显示:
[object Object],[object Object],[object Object],[object Object],[object Object]
似乎视图中的所有内容都被忽略了,所以显然我做错了什么。我会认为至少包含 "TEST" 的段落会显示,即使玩家数组有问题。所以我的两个问题是:
- 为什么我的视图显示“[object Object],[object Object],[object Object],[object Object],[object Object]”?
- 为什么我放入 Players/Index 的内容没有显示?
因为这就是打印对象的方式。如果您想要此对象的 json 表示,请使用
console.log(angular.toJson(data));
不好说。也许视图实际上不在此 URL。查看浏览器开发工具的“网络”选项卡,查看返回的内容。
您需要执行以下操作:
var PlayersController = function($scope, $http) {
$http.get('/Players/Index').success(function (data) {
console.log(data);
$scope.players = data;
});
}
PlayersController.$inject = ['$scope','$http'];
并且在视图中:
<p>TEST</p>
<p>{{players.length}}</p>
<ul ng-repeat="player in players">
{{player.prop}}
</ul>