gpt4 book ai didi

javascript - Angularjs 获取上次或当前更改的模型名称

转载 作者:行者123 更新时间:2023-11-29 21:52:10 26 4
gpt4 key购买 nike

页面上可以有不同类型的输入元素。假设,每个元素都绑定(bind)到一个模型。当任何输入元素的值发生变化时,有没有办法获取当前更改或最近修改的模型名称? (可以使用'watch',但是需要添加每个元素来监视。我想到了一种不为每个元素分配监视的方法:“A common listerner”)

最佳答案

如果您的所有模型都在同一个对象下,您可以对该对象进行深入观察并建立历史记录。

<input type="text" ng-model="user.name" />
<input type="text" ng-model="user.email" />
<input type="text" ng-model="user.details.phone" />

还有一个 Controller

function Controller($scope) {
$scope.user = {
details: {}
};

var lastValue;

// Deep watch ('true' as last argument)
$scope.$watch('user', function (newVal, oldVal) {
// Add to history (create a copy)
lastValue = angular.copy(oldVal);
}, true);
}

如果您使用的是 Angular 1.3+

可以看看ngModelOptions https://docs.angularjs.org/api/ng/directive/ngModelOptions如果您想更好地控制模型的更新时间。

此外,您可以查看 FormController 和 ngModelController 上的 $rollbackViewValue():https://docs.angularjs.org/api/ng/type/form.FormController# $rollbackViewValue, https://docs.angularjs.org/api/ng/type/ngModel.NgModelController# $rollbackViewValue

关于javascript - Angularjs 获取上次或当前更改的模型名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28581179/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com