angularjs - ngshow - ¿Cómo comparar un valor de cadena en ng-show dentro de un customdirective?
ng-show condition (2)
Tratando de usar una directiva con una declaración ng-show en ella. Básicamente, se compara con el valor de una cadena que es la propiedad status_p1 en mi ''nombre'' jsonarray:
ng-show="name.status_p1==working"
La directiva se define así:
app.directive(''radioButton'',function(){
return {
restrict: ''E'',
replace: ''true'',
template: ''<table border="2px">'' +
''<tr><td>{{name.name}}</td><td>Working</td><td><img src="http://www.iconshock.com/img_jpg/REALVISTA/general/jpg/256/cross_icon.jpg" alt="img1" id="imgworking" ng-show="name.status_p1!=working"><img src="http://png-1.findicons.com/files/icons/2198/dark_glass/128/camera_test.png" alt="img2" ng-show="name.status_p1==working"></td></tr>'' +
''</table>''
};
})
El controlador + namesarray en mi página principal se ve así:
app.controller(''MainCtrl'', function($scope) {
$scope.names = [
{
name: ''couple 1'',
status_p1: ''working'',
status_p2: ''retired''
}
]
});
Y finalmente la página principal:
<body ng-controller="MainCtrl">
<div ng-repeat="name in names">
<radio-button></radio-button>
</div>
</body>
Actualmente muestra una cruz donde debería estar mostrando un cheque / tic. Esperaba que la condición se evaluara en VERDADERO porque la propiedad status_p1 es igual a ''trabajo''. ¿Cómo puedo modificar esta ng-showstatement para que la comparación de cadenas funcione? enlace de plunkr: http://plnkr.co/edit/3VdsbsSHpkNJFVnvkmOW?p=preview
En mi caso, tuve esto:
ng-show ="authenticated == {{it.logged_in_view}} || {{it.logged_in_view == ''neutral''}}"
Y tuve que cambiarlo a esto:
ng-show =''authenticated == {{it.logged_in_view}} || {{it.logged_in_view == "neutral"}}''
Adjunté la cadena de atributo entre comillas simples y la cadena que se comparará entre comillas dobles.
La expresion
ng-show="name.status_p1==working"
compara name.status_p1
con una propiedad de working
en el alcance actual, que no está definido en su caso. Lo que necesitas es compararlo con la cadena literal ''working''
.
ng-show="name.status_p1==''working''";
Plunkr modificado