Я хотел бы получить результат вычисления значения, который фильтрует массив в моем представлении, чтобы отобразить количество найденных результатов.
<div repeat.for="d of documents|docfilter:query:categories">
<doc-template d.bind="d"></doc-template>
</div>
Я не хочу, чтобы эта логика была перенесена на мой контроллер (чтобы сохранить его в чистоте) и не добавлять костыли, например, возвращать некоторые данные из контроллера значений.
Что я хочу:
Итак, в основном мне хотелось бы что-то вроде angular:
Как показано здесь:
ng-repeat="item in filteredItems = (items | filter:keyword)"
или здесь: ng-repeat="item in items | filter:keyword as filteredItems"
Что я получаю:
К сожалению, в Aurelia:
d of filteredDocuments = documents|docfilter:query:categories
на самом деле означает d of
filterDocuments = документы |docfilter:query:categories
, и если я добавлю скобки или as
, он не будет работать (сбой с ошибкой парсера).
Итак,
Есть ли чистый способ получения данных из фильтра данных в представлении?
С наилучшими пожеланиями, Александр
UPD 1: когда я говорил о возврате некоторых данных из контроллера значений, я имел в виду это:
export class DocfilterValueConverter {
toView(docs, query, categories, objectToPassCount) {
...
objectToPassCount.count = result.length;
...
});
});
UPD 2. На самом деле я ошибся в этом: d of
filterDocuments = документы |docfilter:query:categories
. Это не решает проблему, но что делает этот код:
1) filteredDocuments = documents |docfilter:query:categories
в init
2) d of filteredDocuments
, который является повторением по фильтру в самом начале массива