ngshow angularjs angularjs-directive angularjs-ng-repeat

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