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];
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.