📅  最后修改于: 2023-12-03 15:01:38.173000             🧑  作者: Mango
当我们在使用AngularJS开发网页或应用程序时,我们可能会需要获取一个元素之前的值以进行后续操作。这时候,我们可以使用ng-change
指令配合一些JavaScript脚本来获取它。
ng-change
是AngularJS框架中的一个指令,它用于在input,select和textarea等元素的value值被修改时触发一个函数。
举个例子,假设我们有这样一个输入框:
<input type="text" ng-model="name" ng-change="alertName()">
当用户修改文本框中的值时,alertName()
函数会被调用。
如果我们想获取输入框中之前的值,我们可以在alertName()
函数中设置一个$watch
,以便获取这个元素之前的值。
<input type="text" ng-model="name" ng-change="alertName()" />
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
var prevValue;
$scope.alertName = function() {
$scope.$watch('name', function(newValue, oldValue) {
if (oldValue !== newValue) {
prevValue = oldValue;
}
});
console.log(prevValue);
};
});
</script>
上述代码中,我们在alertName()
函数中使用$watch
来监听$scope.name
的改变。如果变化了,我们就将新值和旧值进行比较,如果它们不相等,则表示name
的值已经被改变,我们就可以把旧值存储在prevValue
变量中。
最后,我们使用console.log()
函数输出prevValue
的值,就可以将输入框之前的值输出到浏览器的控制台上。
以上就是获取ng-change
之前的值的方法。
通过上述方法,我们可以使用ng-change
指令和一些JavaScript脚本来获取元素之前的值,以便我们在之后的操作中使用。