Предполагая следующие данные:
var roster = [
{
id: 1,
attended: true,
person: {printName: 'Larry'}},
{
id: 2,
attended: false,
person: {printName: 'Curly'}},
{
id: 3,
attended: true,
person: {printName: 'Moe'}}];
Я пытаюсь найти количество объектов в массиве, где присутствовал правда. Я попытался следующие:
rosters.html:
{{ (roster | filter:{attended:true}).length }}
Реестры-controller.js:
checkedInCount: function() {
return $filter('filter')($scope.roster, attended.true).length;
}
HTML-фильтр работает, как и ожидалось, возвратившись 2 в этом случае , Однако версия функции встречает ошибку ReferenceError: Can't find variable: attended
. Я предполагаю, что есть что-то тривиальное, что я пропустил в функции, но я не уверен, что это такое.
Пожалуйста сравните внимательно оба ваших версий. Если вы не можете найти то, что происходит, посмотрите на [ожидаемый тип] (https://docs.angularjs.org/api/ng/filter/filter) аргументов. – Blackhole
Спасибо, что указали это. Я просмотрел эту страницу, но полностью не понял, как построить аргумент 'expression'. Увидев ответ @ tasseKATT, он теперь имеет смысл. –
Может ли пояснитель пояснить? У моего вопроса оказался простой ответ, но я не думал, что он плохой в соответствии с этой метатойкой (http://meta.stackoverflow.com/questions/252677/when-is-it-justifiable-to -downvote-а-вопрос). –