Angular JS过滤器给出'notArray'错误

时间:2016-08-28 12:37:52

标签: javascript angularjs filter

我从本地PHP文件获取数据为JSON格式(这是截图)。

enter image description here

过滤器工作正常,但我收到此错误,如图所示。

core.js

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

app.controller('listController', function($http) {
var vm = this;

vm.loading = true;
vm.players = {};

$http.get("api/players.php")
    .then(function (res) {

        var s1 = res.data.servers[0].players;
        var s2 = res.data.servers[1].players;

        vm.players = s1.concat(s2);
        vm.loading = false;
        console.log(vm.players);
    });
});

的index.html

<li ng-repeat="player in vm.players | filter: search">
    <a href="#">{{ player.name }}</a>
</li>

3 个答案:

答案 0 :(得分:5)

您应该将玩家初始化为数组而不是对象:

vm.players = [];

答案 1 :(得分:2)

这是一个对象:

vm.players = {};

您只能在上面的变量中插入Object,而不能array Object。要插入array Object,您需要:

vm.players = [];

答案 2 :(得分:1)

我认为你应该像这样定义你的数组:

vm.loading = true;
vm.players = [];

不带花括号。