templateurl parameter directives directivas custom compile javascript angularjs angularjs-directive angularjs-scope

javascript - parameter - scope directive angularjs



Angular JS-NG-Repetir con filtros y gruposBy (2)

Cuando llame al filtro, como se indica en la documentación , "El resultado final es una matriz de aquellos elementos para los que el predicado deviene verdadero", es decir, no incluirá ningún elemento con el estado "Abrir".

Eso significa que debe hacer otra ng-repeat para mostrar los que están "abiertos". Probablemente no afecte demasiado el rendimiento, pero, si desea mantener las cosas rápidas y organizadas, considere usar paginación. También puede crear su propio filtro personalizado si realmente no desea utilizar otro ng-repeat o paginate.

Estoy construyendo un panel para mostrar problemas cerrados y cerrados. Tengo todo funcionando con angular ng-repeat con filtros y agrupado por fecha. Aquí hay una muestra rápida de lo que obtuve hasta ahora:

<div ng-app="myApp"> <div ng-controller=''TestGroupingCtlr''> <div ng-repeat="item in MyList | filter: {status: ''Closed''} | groupBy:''groupfield'' " > <h2 ng-show="item.groupfield_CHANGED">{{item.groupfield}}</h2> <ul> <li>{{item.whatever}} - Status: {{item.status}}</li> </ul> </div> </div> </div>

Aquí está mi matriz de alcance:

$scope.MyList = [ {groupfield: ''Day Before'', whatever: ''Server X down'', status: ''Open''}, {groupfield: ''Yesterday'', whatever: ''Access issues'', status: ''Open''}, {groupfield: ''Yesterday'', whatever: ''Server Z is down'', status: ''Closed''}, {groupfield: ''Today'', whatever: ''Network problem'', status: ''Closed''}, {groupfield: ''Today'', whatever: ''Network is down'', status: ''Closed''} ];

Muestra de mi JSfiddle: http://jsfiddle.net/R8YZh/6/

Mi problema es que necesito que los casos estén abiertos para mostrar solo en el grupo de hoy. Ahora, técnicamente, podría simplemente crear una nueva repetición ng para mostrar solo los problemas abiertos y colarlos justo debajo de mi primera lista. Pero como tengo una plantilla muy grande con muchos detalles sobre los problemas, quiero evitar mantener 2 plantillas.

¿Alguien sabría si hay una manera de simplemente usar la repetición Ng existente y decir que se muestran todos los problemas abiertos al final de la matriz de índices para que se encuentre en el grupo de hoy de alguna manera? Cualquier ayuda es apreciada.

Esto es lo que deseaba mostrar:

Yesterday Server Z is down - Status: Closed Today Network problem - Status: Closed Network is down - Status: Closed Server X down - Status: Open Access isses - Status: Open


Puede ser más fácil aplicar el filtrado al nivel de elemento li en lugar de hacerlo en el nivel de grupo

<div ng-app="myApp"> <div ng-controller=''TestGroupingCtlr''> <div ng-repeat="item in MyList | groupBy:''groupfield'' " > <h2 ng-show="item.groupfield_CHANGED">{{item.groupfield}}</h2> <ul > <li ng-show="item.status==''Closed'' || item.groupfield==''Today'' ">{{item.whatever}} - Status: {{item.status}}</li> </ul> </div> </div> </div>