2017-05-25 74 views
0

我想檢查一個對象的屬性值,並想檢查要比較的字符串數據。檢查ng-if語句中的字符串值

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

到目前爲止,所有的div都出現在文本中,只有兩個div應該顯示它。

我的ng-if語句和字符串比較有什麼不對嗎?

+0

如果這是AngularJS(有時稱爲「Angular 1」),那麼正確的標籤是「angularjs」。 – 2017-05-25 07:53:44

+0

我從你的代碼中看到它的方式是你有一個對象,它的值與字符串進行比較。因此,假設你正在包裝ng-if在ng-for中,爲了生成多個div,你應該爲每個新創建的div創建一個具有特定結果值的數組,以實際工作該ng-if – sTx

+0

@torazaburo這是角度2 – bluePearl

回答

1

這裏是演示Jsfiddle

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> 

希望這將解決您的問題

+1

什麼是錯的,你是如何修復它的? – 2017-05-25 07:54:05

+0

我試過這種語法,但在視圖中我會得到'{{results.dataType}}'即使它不等於'textTable' - 我在angular2中做這個 – bluePearl

0

我真正的在角度2中,if語句是:*ngIf而不是ng-if

+1

這不是一個「答案」,更多的是「刪除你的問題的理由」 – 2017-05-25 16:35:45

+0

@torazaburo不用擔心會這麼做 - 與angularjs工作一段時間沒有意識到錯誤 – bluePearl

0

希望這能解決您的問題。

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