Saltar al contenido

condicionales en línea en angular.js

Hola usuario de nuestra web, hallamos la respuesta a tu pregunta, desplázate y la verás a continuación.

Solución:

Angular 1.1.5 agregó soporte para operadores ternarios:

myVar === "two" ? "it's true" : "it's false"

EDITAR: ¡La respuesta de 2Toad a continuación es lo que estás buscando! Vota a favor esa cosa

Si está utilizando Angular <= 1.1.4, esta respuesta servirá:

Una respuesta más para esto. Estoy publicando una respuesta separada, porque es más un intento “exacto” de una solución que una lista de posibles soluciones:

Aquí hay un filtro que hará un “si inmediato” (también conocido como iif):

app.filter('iif', function () 
   return function(input, trueValue, falseValue) 
        return input ? trueValue : falseValue;
   ;
);

y se puede usar así:

foo == "bar" 

Miles de formas de despellejar a este gato. Me doy cuenta de que está preguntando entre específicamente, pero para otros que vienen aquí, creo que vale la pena mostrar algunas de las otras opciones.

función en su $ alcance (En mi opinión, esta es su mejor apuesta en la mayoría de los escenarios):

  app.controller('MyCtrl', function($scope) 
      $scope.foo = 1;

      $scope.showSomething = function(input) 
           return input == 1 ? 'Foo' : 'Bar';
      ;
   );

 showSomething(foo)

ng-show y ng-hide por supuesto:

 FooBar

ngSwitch

 
Foo Bar What?

Un filtro personalizado como sugirió Bertrand. (esta es tu mejor opción si tienes que hacer lo mismo una y otra vez)

app.filter('myFilter', function() 
   return function(input) 
     return input == 1 ? 'Foo' : 'Bar';
   


foo 

O una directiva personalizada:

app.directive('myDirective', function() 
   return 
     restrict: 'E',
     replace: true,
     link: function(scope, elem, attrs) 
       scope.$watch(attrs.value, function(v) 
          elem.text(v == 1 ? 'Foo': 'Bar');
       );
     
   ;
);



Personalmente, en la mayoría de los casos elegiría una función en mi alcance, mantiene el marcado bastante limpio y es rápido y fácil de implementar. Es decir, a menos que vaya a hacer exactamente lo mismo una y otra vez, en cuyo caso seguiría la sugerencia de Bertrand y crearía un filtro o posiblemente una directiva, según las circunstancias.

Como siempre, lo más importante es que su solución sea fácil de mantener, y es de esperar que sea comprobable. Y eso va a depender completamente de su situación específica.

Te mostramos reseñas y valoraciones

Eres capaz de añadir valor a nuestra información cooperando tu experiencia en las explicaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 4.5)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *