2013-10-14 19 views
0

刚才我刚刚阅读了AngularJS,我能够完成一些工作。总新手在这里。但是这个,我无法超越它。我阅读了一下stackoverflow,并了解AngularJS中没有if语句。如果输入文本等于“字符串”,然后乘以0.2的范围与0.2 - AngularJS?

我读了关于ng-switch,ng-change,ng-if和尝试了一切,但仍然无法工作。我只是想要一个输入文本,当输入“test”时,一个变量会改变它的值。

<div ng-app="App"> 
    <div ng-controller="Controller"> 
    <input type="text" ng-model="test" ng-change="change()" /> 
    counter = {{number}} 
    </div> 
</div> 

function Controller($scope) { 
    $scope.number = 1000; 
    $scope.change = function() { 
    $scope.number = $scope.number * 0.2; 
    }; 
} 

这必须是一个愚蠢的问题,但这里有一个小提琴: http://jsfiddle.net/e68mx/1/

回答

0

您只需要用if语句对其进行测试。

$scope.change = function() { 
    if($scope.test === 'test') { 
     $scope.number *= 0.2; 
    } 
}; 
+0

谢谢。我想整个“没有,如果在angularjs的声明”误导了我。 – pau

+0

我很困惑你的评论,有如果语句 - 这是JavaScript毕竟。不知道你从哪里挑选这个。 –

-1

身高:$watch超过ng-change原因是ng-change在许多情况下实际更新模型之前运行(全部?我不确定)。查看更新的提琴:http://jsfiddle.net/fCymg/

+0

你真的不应该在指令外使用$ watch。 $手表会在每个摘要中进行处理,以帮助盲目地将数据从模型绑定到DOM。只有当输入的模型被改变时,ng-change才会被处理(在摘要期间,由$ watch)。 –

+0

感谢您的帮助。 – pau

+0

@blesh你是否有一个官方的参考,不鼓励在_controllers_中使用'$ scope。$ watch',或者你只是误导了? –