2017-05-25 2 views
0

Ich möchte den Wert der Eigenschaft eines Objekts überprüfen und möchten die Daten der zu vergleichenden Zeichenfolge überprüfen.Überprüfung Zeichenfolge Wert in ng-if-Anweisung

<div ng-if="results.dataType === 'textTable'"> 
    This text belongs in a table. 
</div> 

Bis jetzt erscheinen alle divs mit dem Text im Körper, wo nur zwei divs es anzeigen sollten.

Gibt es etwas falsch mit meiner ng-if-Anweisung und String-Vergleich? Hier

+0

Wenn dies AngularJS ist (manchmal "Angular 1" genannt), ist das korrekte Tag "angularjs". –

+0

Die Art, wie ich es aus Ihrem Code sehe, ist, dass Sie ein Objekt mit einem Wert haben, den Sie mit einer Zeichenfolge vergleichen. Angenommen, Sie wickeln das ng-if in einem ng-for, um mehrere divs zu erzeugen, sollten Sie ein Array mit spezifischen Ergebniswerten für jedes neu erstellte div haben, um dieses ng zu funktionieren - wenn – sTx

+0

@torazaburo dies in angular 2 – bluePearl

Antwort

1

ist die Demo Jsfiddle

Js Code

var app = angular.module('myApp', []); 

    app.controller('ctrl', function($scope) { 
    $scope.results = { 
     dataType: 'textTable' 
    }; 
    $scope.flag = true; 

    // for testing purpose 

    $scope.toggle = function() { 
     if ($scope.flag) { 
     $scope.results = { 
      dataType: 'textTable' 
     }; 
     $scope.flag = !$scope.flag; 
     } else { 
     $scope.results = { 
      dataType: 'textTableNot' 
     }; 
     $scope.flag = !$scope.flag; 
     } 

    } 
    }); 

HTML

<div ng-app='myApp'> 

    <div ng-controller='ctrl'> 
     <div ng-if='results.dataType === "textTable"'> This text belongs in a table.</div> 
     {{results.dataType}} 
     <button ng-click='toggle()'> 
     Toggle 
     </button> 
    </div> 
    </div> 

hoffen, dass dies lösen Ihr Problem

+1

Was war falsch, und wie haben Sie es behoben? –

+0

Ich versuchte diese Syntax, aber in der Ansicht würde ich '{{results.dataType}}' angezeigt, auch wenn es nicht gleich 'textTable' ist - ich mache das in angular2 – bluePearl

0

I Echt dass die if-Anweisung in Winkel 2 lautet: *ngIf und nicht ng-if.

+1

Dies ist weniger eine" Antwort "und mehr a "Grund, Ihre Frage zu löschen." –

+0

@torazaburo keine Sorgen werden es tun - die Arbeit mit angularjs für eine Weile hat den Fehler nicht erkannt – bluePearl

0

Ich hoffe, dies wird Ihr Problem lösen.

<div> 
<input type="hidden" ng-model="myVar" ng-init="myVar = 'stringformat'"> 
<div ng-if="myVar =='stringformat'"> 
<h1>Welcome</h1> 
<p>Welcome to my home.</p> 
</div> 
</div> 
Verwandte Themen