我有要用ng-repeat显示的项目列表。我想添加一个过滤器以显示/隐藏已归档的项目。
我添加了一个复选框:

<input type="checkbox" ng-model="queryFilter.archived">Show archived messages
在我的 Controller 中,我有:
$scope.queryFilter = {
    archived: false
};
我的项目列表显示在表格中。我尝试了以下方法:
<tr ng-repeat="message in messages | filter : queryFilter">

<tr ng-repeat="message in messages | filter : { archived: queryFilter.archived }">

<tr ng-repeat="message in messages | filter : queryFilter track by $index">
我收到此错误:

过滤确实起作用,但我想知道为什么会收到错误消息。

最佳答案

您的messages必须包含Object格式的数据,而不是Array格式。

这就是引发此错误的原因。检查文档https://docs.angularjs.org/error/filter/notarray

从文档中:



因此,请确保您的$scope.messages包含数组形式的数据,而不是对象形式的数据。

关于angularjs - 带过滤器的AngularJS ng-repeat-NotArray错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37375302/

10-13 02:33