2014-09-10 55 views
1

我有這樣的代碼:如何做angularjs if語句?

<html> 
<head> 
</head> 

<div ng-app="" ng-controller="Test"> 
<input type="text" ng-model="inputty"> 
<p>{{output}}</p> 
</div> 

<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"></script>  
<script> 
    function Test($scope){ 
    if($scope.inputty=="Hello") { 
     $scope.output="OK!"; 
    } else { 
     $scope.output="NOT OK!"; 
    } 
    } 
</script> 
</html> 

但它不工作時,NOT OK!顯示器。但它就像if語句不能從inputty讀取。所以當我在輸入框中輸入Hello時,它應該顯示OK!

+0

'$ scope.output = function(){return $ scope.inputty ==「Hello」?「OK!」 : 「不好!」; }'並且'

{{output()}}

' – PSL 2014-09-10 19:20:44

回答

3

您需要在手錶加在你controlller以便檢查inputty的價值和手錶的功能裏面有如果循環,這樣就可以改變輸出範圍變量

代碼:

function Test($scope) { 
    $scope.inputty = ''; 
    $scope.$watch('inputty', function() { 
     if ($scope.inputty == "Hello") { 
      $scope.output = "OK!"; 
     } else { 
      $scope.output = "NOT OK!"; 
     } 
    }); 
} 

Working Fiddle - $watch

參考爲$watch

或者,

可以使用納克開關

HTML標記

<div ng-app ng-controller="Test"> 
    <input type="text" ng-model="inputty" /> 
    <div ng-switch="inputty"> 
     <p ng-switch-when="Hello">OK!</p> 
     <p ng-switch-default>NOT OK!</p> 
    </div> 
</div> 

獨自做到這一點的HTML標記Working Fiddle - ng-switch

參考了ng-switch

+0

對不起,我是一個相當新的角度,有沒有更簡單的方法來做到這一點?我會認爲不需要使用循環。 – 2014-09-10 19:09:29

+1

它不是一個循環它的一個監視器函數,它將檢查inputty(控制器中的一個事件)的值,以便控制器可以相應地檢查該值並設置輸出變量,否則需要thr事件以便讓控制器做比較 – V31 2014-09-10 19:10:52

+0

WH/watch-ng-switch等等。它應該和'return $ scope.inputty ==「Hello」一樣簡單?「」OK!「 :「NOT OK!」;' – PSL 2014-09-10 19:21:27

0

如果您只能通過文本框更改inputty,最簡單的方法是使用ngChange