nie sądzę jego aktualnie możliwe - count $ jest opcją zapytania OData, odpowiednik w ODataListBinding jest długość, np Products.length nie mogę wymyślić sposób, aby powiązać go
można osiągnąć liczbę Za kilka sposobów, z wykorzystaniem formatowania
opcja 1 - najprostsza, utworzyć listę wiążącego, który brzmi całkowitą liczbę produktów, robi synchronicznego połączenia i zwraca
function productCount(oValue) {
//return the number of products linked to Category // sync call only to get $count
if (oValue) {
var sPath = this.getBindingContext().getPath() + '/Products';
var oBindings = this.getModel().bindList(sPath);
return oBindings.getLength();
}
};
<List items="{/Categories}"} >
<ObjectListItem
title="{CategoryName}"
number="{path : 'CategoryName',formatter:'productCount'}"
numberUnit="Products"
</ObjectListItem>
</List>
opcję tylko hrabia $ 2 - użyj poszerzyć i powrócić bardzo mały zbiór danych, w tym przypadku tylko CategoryName i ProductID, zastrzeżenie o to, czy trzeba przez stół wprost stronicowania, aby uzyskać pełną listę
function productCount(oValue) {
//read the number of products returned
if (oValue) {
return oValue.length;
}
};
<List items="{/Categories,parameters:{expand:'Products', select:'CategoryName,Products/ProductID'}}">
<ObjectListItem
title="{CategoryName}"
number="{path : 'Products',formatter:'productCount'}"
numberUnit="Products"
</ObjectListItem>
</List>
To było najlepsze rozwiązanie, zdecydowanie docenione! –
Dzięki @ChrisR - Jeśli to możliwe, rozważ także dodanie nowej usługi do usługi zaplecza i zaimplementuj tam również liczbę. Wtedy skorzystasz z prostego powiązania w kodzie UI5. – fabiopagoti