簡體   English   中英

angular $watch 舊值和新值相同

[英]angular $watch old value and new value are the same

我的目的是觀察 $rootScope 中的值,並在值更改時調用偵聽器方法。 但是,我發現如果值沒有改變,監聽器也會被調用。 有沒有辦法觀察一個值是否改變了角度?

app = angular.module('myApp',[]);

app.controller('MyCtrl', function($rootScope, $timeout){
  $rootScope.markers = 1;
  $rootScope.$watch('markers', function(newValue, oldValue){
    console.log('being watched oldValue:', oldValue, 'newValue:', newValue);
  });
  $timeout( function() {
    $rootScope.markers = 1;
  }, 500);
});

這是代碼, http://plnkr.co/edit/MXIaJKE9UGTMjrreFjb0?p=preview

$watch在創建控制器時運行,然后在分配值時運行,因此您需要檢查$watch函數內的相等性:

if(oldValue != newValue) {...}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM