Por qué mezclar interpolación y expresiones es una mala práctica
De los documentos:
Incrustar marcado de interpolación dentro de expresiones
Nota: Los atributos de la directiva AngularJS toman expresiones o marcas de interpolación con expresiones incrustadas. Se considera una mala práctica incrustar un marcado de interpolación dentro de una expresión:
— Guía para desarrolladores de AngularJS: interpolación
Estoy buscando una respuesta canónica bien escrita a la que pueda indicar a los lectores.
De los documentos:
Por qué mezclar interpolación y expresiones es una mala práctica:
Aumenta la complejidad del marcado.
No hay garantía de que funcione para todas las directivas, porque la interpolación en sí misma es una directiva. Si otra directiva accede a los datos de atributos antes de que se haya ejecutado la interpolación, obtendrá el marcado de interpolación sin procesar y no los datos.
Afecta el rendimiento, ya que la interpolación agrega otro observador al alcance.
Guía para desarrolladores de AngularJS: interpolación
Las directivas que esperan valores booleanos no funcionarán:
ERRÓNEO
<input type="checkbox" ng-hide ="{{x.thenumber === null}}" />
Cuando la expresión se evalúa como un valor booleano false
, la interpolación devolverá la cadena "false"
. Las cadenas que tienen una longitud mayor que cero son verdaderas . La ng-hide
directiva siempre ocultará y nunca mostrará el elemento de entrada.
CORRECTO
<input type="checkbox" ng-hide="x.thenumber === null" />