2017-05-25 1 views
0

Je voudrais vérifier la valeur de la propriété d'un objet et aimerais vérifier les données de la chaîne à comparer.vérification de la valeur de chaîne dans l'instruction ng-if

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

Jusqu'à présent, tous les divs apparaissent avec le texte dans le corps où seulement deux div devraient l'afficher.

Y at-il un problème avec mon instruction ng-if et la comparaison de chaînes?

+0

S'il s'agit d'AngularJS (parfois appelé "Angular 1"), la balise correcte est "angularjs". –

+0

La façon dont je le vois à partir de votre code est que vous avez un objet avec une valeur que vous comparez avec une chaîne. Supposons que vous enveloppiez le ng-if dans un ng-for, pour générer plusieurs divs, vous devez avoir un tableau avec des valeurs de résultat spécifiques pour chaque nouveau div créé pour que cela fonctionne réellement. – sTx

+0

@torazaburo 2 – bluePearl

Répondre

1

Voici la démo Jsfiddle

Code Js

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> 

Hope cela résoudra votre problème

+1

Qu'est-ce qui n'allait pas et comment l'avez-vous réparé? –

+0

J'ai essayé cette syntaxe mais dans la vue j'obtiendrais '{{results.dataType}}' même si elle n'est pas égale 'textTable' - je le fais en angulaire2 – bluePearl

0

I réel ized que dans l'angle 2 l'instruction if est: *ngIf et non ng-if.

+1

Ceci est moins une" réponse "et plus un "raison de supprimer votre question" –

+0

@torazaburo aucun souci ne le fera - travailler avec angularjs pendant un certain temps n'a pas réalisé l'erreur – bluePearl

0

Espérons que cela va résoudre votre problème.

<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>