使用AngularJS从输入中获取新值

时间:2016-09-29 15:17:57

标签: javascript jquery angularjs angularjs-directive

我正在尝试将JQuery网站转换为AngularJS,但我无法解决这个问题。

在JQuery中我使用了:

$('.bet').change(function(e)  {
    // Do someting
};

我尝试用AngularJS做多件事,但没有成功 目前我在我的HTML中有这个,我的Angular文件中没有相关内容

的index.php

<input type="number" class="form-control" id="bet" name="bet" placeholder="Your bet" ng-model="bet" ng-change="bet( {{bet}} )"/>

如何在AngularJS中执行此操作?

3 个答案:

答案 0 :(得分:2)

来自文档:

  

在用户更改输入时评估给定的表达式。表达式是立即计算的,不像JavaScript onchange事件,它只在更改结束时触发(通常,当用户离开表单元素或按下返回键时)。

所以基本上你需要将一个函数绑定到ng-change属性,就像这样:

<input type="number" name="bet" placeholder="Your bet" ng-model="bet" ng-change="betChanged(bet)"/>

和控制器中的监听器:

$scope.betChanged = function(bet){
   //do something...
   console.log(bet);
}

像这样,每次下注都会改变betChanged,就像本机javascript input函数一样。

答案 1 :(得分:0)

var myApp = angular.module('myApp',[]);

myApp.controller('myCtrl', ['$scope', function($scope) {
  $scope.bet = "";
  $scope.onBetChanged = function () {
    alert($scope.bet);
  };
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">
<input type="number" class="form-control" id="bet" name="bet" placeholder="Your bet" ng-model="bet" ng-change="onBetChanged()"/>
</div>

答案 2 :(得分:0)

$ watch

怎么样?
<div ng-app="myApp" ng-controller="myCtrl">
        First Name:
        <input type="text" ng-model="firstName"><br>

        Full Name: {{firstName }}
    </div>
    <script>
        var app = angular.module('myApp', []);
        app.controller('myCtrl', function ($scope, $window) {
            $scope.$watch('firstName', function (newValue, oldValue) {
                console.log('oldValue=' + oldValue);
                console.log('newValue=' + newValue);
                //do something
                $window.alert("Event fired");
            });
        });
    </script>