/ / Repetidor AngularJS que tiene varios filtros en línea para un modelo complejo - javascript, angularjs

Repetidor AngularJS que tiene varios filtros en línea para un modelo complejo - javascript, angularjs

Soy totalmente nuevo en AngularJS, por lo que me gustaría recibir algunos consejos sobre cómo hacerlo.

En lugar de crear varios "bloques" gruesos decódigo de filtro, ¿es posible tener claramente varios filtros de mostrar / ocultar dentro de un repetidor? Esto facilitaría enormemente la legibilidad a primera vista y es menos código en comparación con los Filtros personalizados / Tutorial 9 en el sitio de AngularJS.

Algo como:

    <li ng-repeat="phone in phones | filter:(showIf phone.brand == "Nexus") | orderBy:orderProp">
{{phone.name}}
<ul>
<li ng-repeat="price in phone.prices | filter:(showIf price < 100)">${{price}}</li>
</ul>
</li>

Editado:

¿Funcionaría esto y cómo escondo al padre? UL si no hay LIs?

<li ng-repeat="phone in phones | filter:{brand: "Nexus"} | orderBy:orderProp">
{{phone.name}}
<ul>
<li ng-repeat="price in phone.prices | filter:{price: < 100}">${{price}}</li>
</ul>
</li>

Respuestas

0 para la respuesta № 1

Referirse a Filtro dev guía en los documentos angulares. Es completamente posible.

Tu primer ejemplo showIf phone.brand == "Nexus" Se realiza mejor con el filtro incorporado de forma confusa. filter.

<li ng-repeat="phone in phones | filter:{brand: "Nexus"}">{{ phone }}</li>

Su segundo ejemplo es algo más complicado debido a la < operador, pero se puede resolver utilizando el mismo filter-filtre con una función de comparación personalizada, o creando su propio filtro personalizado.

Ejemplo de función comparadora:

$scope.lessThan = function(expected, actual) {
return actual < expected;
}

Utilizado como

<li ng-repeat="price in phone.prices | filter:{price: 100}:lessThan">{{price}}</li>