简体   繁体   English

Angular JS过滤器给出“ notArray”错误

[英]Angular JS filter giving 'notArray' error

I'm getting data from my local PHP file as JSON format (here's a screenshot). 我从本地PHP文件中以JSON格式获取数据(这是屏幕截图)。

在此处输入图片说明

The filter works fine, but I'm getting this error as you can see in the pic. 筛选器工作正常,但是您在图片中看到了这个错误。

core.js 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 index.html

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

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

vm.players = [];

This is an object: 这是一个对象:

vm.players = {};

You can insert only Object in above variable, not an array of Object . 可以只插入Object在上述变量,而不是一个arrayObject To insert an array of Object s, you need: 要插入一个Object array ,您需要:

vm.players = [];

I think you should define your array like this: 我认为您应该像这样定义数组:

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

Not with curly brackets. 不带花括号。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM