Javascript 使用AngularJS从输入中获取新值
我正在尝试将JQuery网站转换为AngularJS,但我无法理解这一点。Javascript 使用AngularJS从输入中获取新值,javascript,jquery,angularjs,angularjs-directive,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" placehol
在我使用的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中执行此操作?来自文档: 当用户更改输入时计算给定表达式。表达式会立即求值,这与JavaScript onchange事件不同,后者仅在更改结束时触发(通常是在用户离开表单元素或按下返回键时) 因此,基本上需要将函数绑定到
ng change
属性,如下所示:
<input type="number" name="bet" placeholder="Your bet" ng-model="bet" ng-change="betChanged(bet)"/>
像这样,每次bet发生变化时都会调用betChanged,这与本机javascript
input
函数非常相似。来自文档:
当用户更改输入时计算给定表达式。表达式会立即求值,这与JavaScript onchange事件不同,后者仅在更改结束时触发(通常是在用户离开表单元素或按下返回键时)
因此,基本上需要将函数绑定到ng change
属性,如下所示:
<input type="number" name="bet" placeholder="Your bet" ng-model="bet" ng-change="betChanged(bet)"/>
这样,每次bet发生变化时都会调用betChanged,这与本机javascriptinput
函数非常相似。
var myApp=angular.module('myApp',[]);
控制器('myCtrl',['$scope',函数($scope){
$scope.bet=“”;
$scope.onBetChanged=函数(){
警报($scope.bet);
};
}]);代码>
var myApp=angular.module('myApp',[]);
控制器('myCtrl',['$scope',函数($scope){
$scope.bet=“”;
$scope.onBetChanged=函数(){
警报($scope.bet);
};
}]);代码>
那$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>
名字:
全名:{{firstName}
var-app=angular.module('myApp',[]);
app.controller('myCtrl',函数($scope,$window){
$scope.$watch('firstName',函数(newValue,oldValue){
log('oldValue='+oldValue);
log('newValue='+newValue);
//做点什么
$window.alert(“事件触发”);
});
});
那$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>
名字:
全名:{{firstName}
var-app=angular.module('myApp',[]);
app.controller('myCtrl',函数($scope,$window){
$scope.$watch('firstName',函数(newValue,oldValue){
log('oldValue='+oldValue);
log('newValue='+newValue);
//做点什么
$window.alert(“事件触发”);
});
});
您希望获得什么样的结果?当用户键入某个内容时,您希望如何处理该值?您希望获得什么样的结果?当用户键入某个内容时,您希望如何处理该值?请注意,ng change
的响应不同于jquery change注意,ng change
的响应不同于jquery change“非常类似于本机javascript更改”不是真的。。。。更像是“输入”事件。它甚至说,在你的文档中,我很糟糕,我会编辑我的答案。感谢您指出这一点。绑定到ng change
属性是正确的,但是将bet
传递到$scope.betchange
是不必要的,因为您可以通过$scope.bet
访问相同的变量。是的,这是一个编码风格的问题:您是对的,不需要,但在我看来,更清楚地理解“与本机javascript更改非常相似”不是真的。。。。更像是“输入”事件。它甚至说,在你的文档中,我很糟糕,我会编辑我的答案。感谢您指出这一点。绑定到ng change
属性是正确的,但是将bet
传递到$scope.betchange
是不必要的,因为您可以通过$scope.bet
访问相同的变量。是的,这是一个编码风格的问题:您是对的,不需要,但在我看来,这是更清楚的理解