switch javascript angularjs template-engine

javascript - switch - ng-include angularjs



Compruebe si el valor en el conjunto en la plantilla angular? (3)

¿Hay alguna manera de verificar si un valor está en una matriz en una plantilla angular? Estoy buscando algo como esto:

<div ng-class="{''myClass'':1 in [1,2,5]}">Yay</div>

Donde myClass se aplica si 1 está en la matriz.

es posible?

Y aparte, ¿qué motor de plantillas exactamente se usa con Angularjs? ¿Dónde puedo encontrar documentación para ello? Cada vez que intento y busco (incluso documentos oficiales), solo aparezco para subir los documentos a las directivas o al enlace de datos.


Prueba esto:

ng-class="{''myClass'': !!~[1,2,5].indexOf(1)}"

si el valor no está en la matriz obtienes 0 por lo tanto con !! obtienes falso


Puede crear un filtro para verificar esto. Algo como:

app.filter(''inArray'', function() { return function(array, value) { return array.indexOf(value) !== -1; }; });

Entonces puedes usar esto en tu plantilla con:

<div ng-class="{''newclass'': tarray | inArray : 1}">Yay</div>

La ventaja de esto es que hace que tu plantilla sea más legible.


Puede usar indexOf() para probar si un valor está en una matriz y luego usarlo dentro de su ngClass esta manera (para agregar condicionalmente "newclass"):

<div ng-class="{''newclass'':([1,2,5].indexOf(2) > -1)}">Yay</div>

O más probablemente querrás probar contra una matriz en tu alcance:

<div ng-class="{''newclass'':(tarray.indexOf(1) > -1)}">Yay</div>

Asumiendo, por ejemplo, que ha declarado tarray en su controlador:

$scope.tarray=[1,2,5];

demo

En cuanto a un motor de plantilla, está integrado en Angular. Entonces no hay realmente algo separado para buscar. Pero aquí están los documentos de plantillas de nivel superior y aquí hay algunos buenos tutoriales en video que cubren plantillas (por ejemplo, la primera es sobre el enlace de datos) y mucho más.