如何根据用户输入更改值,角度?

时间:2016-01-28 16:34:00

标签: javascript angularjs

我正在尝试使用angular来根据用户输入更改输出值。我可以递增值,但是,当输入改变时,输出的值不会改变

这是我的代码:

<input type="text" ng-change="myFunc()" ng-model="myValue" />
  <p>You have {{total}} points left.</p>
</div>

<script>
  angular.module('myApp', [])
    .controller('myCtrl', ['$scope', function($scope) {
      $scope.myValue = 0;      
      $scope.total = 5;
      $scope.myFunc = function() {
        $scope.total -= $scope.myValue;
      };
    }]);
</script>

我希望当用户点击退格时,总数会回到初始值(在本例中为5)

任何想法?

3 个答案:

答案 0 :(得分:0)

我觉得做起来比较简单

<input type="text" ng-model="myValue" />
<p>You have {{total - myValue}} points left.</p>
<button type="button" ng-click="myFunc()">

<script>
  angular.module('myApp', [])
    .controller('myCtrl', ['$scope', function($scope) {
        $scope.myValue = 0;      
        $scope.total = 5;

        $scope.myFunc = function() {
            $scope.total-=$scope.myValue;
        };
    }]);
</script>

像这样,用户可以看到该值,但仅将其应用于显式操作

答案 1 :(得分:0)

如果要返回初始值,可以检查输入长度。

$scope.myFunc = function() {
    if(!$scope.myValue.length){
        $scope.total = 5; 
    }
    $scope.total-=$scope.myValue;
}

http://jsfiddle.net/ugmv5od1/

答案 2 :(得分:0)

我认为在你的改变功能中你应该有这个。添加scope.initial作为起始值而不是total,因此当框中没有任何内容时,您可以返回它。

$scope.initial=5;
$scope.myValue=0;      
$scope.total = $scope.initial;

$scope.myFunc = function(){
  $scope.total = $scope.initial - myValue;
}