[英]How to make $watch only trigger once?
我加了$watch
; 如果undefined
panodatas,则$watch
的代码将引发错误:
scope.$watch('panodatas', function(newVal) {
if ('isCreate' in attrs) {
$('.modal #points').hide()
$('.modal #points-info').hide()
}
if (newVal || 'isCreate' in attrs) {
scope.x = 0
scope.y = 0
scope.points = []
问题是,每次panodatas
更改时,代码都会触发。
我该怎么做,以使$watch
仅触发一次,而以后在panodatas
更改时不会触发?
尝试这个:
var unwatch = $scope.$watch('someVar', function() {
unwatch();
});
scope.$watch
返回一个注销函数,因此,如果您这样做:
var dereg = scope.$watch('panodatas', function(newVal) {
dereg();
});
它会在运行后立即注销。
您可以清除函数内的$watch
var listener = $scope.$watch("panodates", function () {
// ...
listener(); // Would clear the watch
});
它将被调用一次,然后清除观察者。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.