Javascript 角度JS过滤器提供';notArray';错误

Javascript 角度JS过滤器提供';notArray';错误,javascript,angularjs,filter,Javascript,Angularjs,Filter,我从本地PHP文件中获取JSON格式的数据(这里是一个屏幕截图) 过滤器工作正常,但我得到了这个错误,你可以在图片中看到 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") .t

我从本地PHP文件中获取JSON格式的数据(这里是一个屏幕截图)

过滤器工作正常,但我得到了这个错误,你可以在图片中看到

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>

  • 您应该将播放器初始化为数组而不是对象:

    vm.players = [];
    
    vm.players = {};
    

    您应该将播放器初始化为数组而不是对象:

    vm.players = [];
    
    vm.players = {};
    

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

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

    不是用花括号。

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

    vm.loading = true;
    vm.players = [];
    
    不带花括号。

    这是一个对象:

    vm.players = [];
    
    vm.players = {};
    
    您只能在上述变量中插入
    对象
    ,而不能插入
    对象
    数组
    。要插入
    对象的
    数组
    ,您需要:

    vm.players = [];
    
    这是一个对象:

    vm.players = [];
    
    vm.players = {};
    
    您只能在上述变量中插入
    对象
    ,而不能插入
    对象
    数组
    。要插入
    对象的
    数组
    ,您需要:

    vm.players = [];
    

    你的意思是在vm.players=s1.concat(s2)行之后是空的?你能添加一把小提琴吗?你的意思是在vm.players=s1.concat(s2)行之后是空的?你能添加一把小提琴吗?