在我的 angular.js 应用程序中,我正在渲染一个绑定(bind)到范围变量的输入字段,用户可以在其中输入数量。
我现在要做的是拦截对绑定(bind)变量的所有更改,如果输入非整数数量或字段留空,我想将范围变量设置为 1。
我设法通过 watch 做到了这一点,但我遇到了错误,因为我的数量变量也在我的 watch 功能中被修改:
$scope.$watch('quantity', function (oldValue, newValue) {
// Some Code ...
if (!valid) {
$scope.quantity = 1;
}
});
任何想法表示赞赏
最佳答案
您可以使用$timeout
强制执行scope.apply
。简单地说,你可以这样做
$scope.check = function () {
// Some Code ...
if (!valid) {
$timeout(function () {
$scope.quantity = 1;
});
}
};
关于javascript - 拦截值更改重写 angular.js 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18448629/