/ / Filtros AngularJS basados ​​en la solicitud / respuesta del lado del servidor PHP - php, angularjs, symfony, angularjs-filter

Filtros AngularJS basados ​​en la solicitud / respuesta del lado del servidor PHP: php, angularjs, symfony, angularjs-filter

En una aplicación en la que estoy trabajando necesito agregarAlgunos filtros como por ejemplo: aprobado, con documentos, con documentos aprobados y algunos otros. Todos estos filtros se basan en las consultas de MySQL a la base de datos realizadas por el controlador PHP (estoy usando Symfony2) y las funciones de esos controladores devolverán un JSON bien formado. Mi pregunta es: ¿puedo escribir filtros para AngularJS en función de este comportamiento? ? (Me refiero a un pequeño ejemplo solo para entender el flujo)

Respuestas

1 para la respuesta № 1

Creo que puedes hacer algo similar al siguiente código:

//in your symfony controll
public function sampleAction() {
$data = $this->getDoctrine()->getManager()->getRepository("YourBundle:SampleEntity")->findAll()->toArray();
return $this->render("YourBundle:Views_Path:sampleTwigOutput.html.twig", array(
"data" = json_encode($data)
));
}

En tu archivo de ramitas puedes tener algo como

<div ng-init="mydata = {{ data|raw }}"></div>
<table id="sortedData">
<tr><th>T1</th><th>T2</th></tr>
<tr ng-repeat="data in mydata | filter:sortData">
<td>{[{data.name}]}</td>
<td>{[{data.phone}]}</td>
</tr>

También es necesario cambiar el símbolo de inicio y fin a algo diferente (como {[{ y }]}) interpolateProvider
Ahora necesitas definir un sortData js funcionan como

angular.module("MySortModule", []).
filter("sortData", function() {
// do all your stuffs to sort the data base on whatever you want
// set them all to out
return out;
});

Puedes encontrar más información al respecto en Filtro angular

Recomendaría ordenar los datos en la base de datos a través de Symfony, que es más rápido y en salida angular simplemente volcar los datos