Angularjs 角度JS阻止$watch侦听器
我使用了下拉列表,通过Angular JS controller中的Angularjs 角度JS阻止$watch侦听器,angularjs,Angularjs,我使用了下拉列表,通过Angular JS controller中的$scope.$watch侦听器回调来呈现一些结果 当我更改下拉列表的其他值时,它工作正常。 但在某些情况下,我需要保留最后选定的结果(不需要引发该事件) 我尝试了ng change和ng click,但之后它就可以工作了 $scope.$watch已升起 如果您有任何帮助,我们将不胜感激。在$scope.$watch()上有一个重载,您还可以在其中捕获被监视属性的先前值 $scope.$watch(propertyExpre
$scope.$watch
侦听器回调来呈现一些结果
当我更改下拉列表的其他值时,它工作正常。
但在某些情况下,我需要保留最后选定的结果(不需要引发该事件)
我尝试了ng change
和ng click
,但之后它就可以工作了
$scope.$watch
已升起
如果您有任何帮助,我们将不胜感激。在
$scope.$watch()
上有一个重载,您还可以在其中捕获被监视属性的先前值
$scope.$watch(propertyExpression, newValue, oldValue)
这就是你要找的吗?没有代码示例很难读懂您的想法;)
如果您想保留更大的值,您可能需要考虑在控制器中保留一些状态。 顺便说一句,总是使用此重载并首先使用
(newValue!==oldValue)
检查您正在观看的对象是否真的发生了更改是很有趣的,因为(如果我回忆正确的话)$scope。在更高级别的节点上调用$scope.$apply
时也会触发$watch
。看看这是否有效
var unregisterWatch =
$scope.$watch('param', function(newVal, oldVal) {
if (newVal === oldVal)
return; //
});
需要时调用此函数,它将取消Angular对变量的监视。请包含一些代码示例。