AngularJS ng-repeat with filter - notarray error
<p>I have a list of items that I'm displaying with <code>ng-repeat</code>.  I want to add a filter to show/hide archived items.</p>
<p>I have added a checkbox:</p>
<pre><code>&lt;input type=&quot;checkbox&quot; ng-model=&quot;queryFilter.archived&quot;&gt;Show archived messages
</code></pre>
<p>In my controller I have this:</p>
<pre><code>$scope.queryFilter = {
    archived: false
};
</code></pre>
<p>My list of items is displayed in a table.  I've tried the following:</p>
<pre><code>&lt;tr ng-repeat=&quot;message in messages | filter : queryFilter&quot;&gt;

&lt;tr ng-repeat=&quot;message in messages | filter : { archived: queryFilter.archived }&quot;&gt;

&lt;tr ng-repeat=&quot;message in messages | filter : queryFilter track by $index&quot;&gt;
</code></pre>
<p>I get this error:</p>
<blockquote>
<p>Error: [filter:notarray]</p>
<p>Expected array but received: {}</p>
</blockquote>
<p><strong>The filtering does work</strong> but I want to know why I am getting the error.</p>