欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談Angular.js中使用$watch監(jiān)聽模型變化

 更新時間:2017年01月10日 10:11:27   作者:袁克強(qiáng)  
當(dāng)angular數(shù)據(jù)模型發(fā)生變化時,我們需要如果需要根據(jù)他的變化觸發(fā)其他的事件。本篇文章主要介紹了Angular.js中使用$watch監(jiān)聽模型變化,有興趣的可以了解一下

$watch簡單使用

$watch是一個scope函數(shù),用于監(jiān)聽模型變化,當(dāng)你的模型部分發(fā)生變化時它會通知你。

$watch(watchExpression, listener, objectEquality);

每個參數(shù)的說明如下:

  • watchExpression:監(jiān)聽的對象,它可以是一個angular表達(dá)式如'name',或函數(shù)如function(){return $scope.name}。
  • listener:當(dāng)watchExpression變化時會被調(diào)用的函數(shù)或者表達(dá)式,它接收3個參數(shù):newValue(新值), oldValue(舊值), scope(作用域的引用)
  • objectEquality:是否深度監(jiān)聽,如果設(shè)置為true,它告訴Angular檢查所監(jiān)控的對象中每一個屬性的變化. 如果你希望監(jiān)控數(shù)組的個別元素或者對象的屬性而不是一個普通的值, 那么你應(yīng)該使用它

舉個栗子:

$scope.name = 'hello';

var watch = $scope.$watch('name',function(newValue,oldValue, scope){

    console.log(newValue);

    console.log(oldValue);

});

$timeout(function(){

    $scope.name = "world";

},1000);

$watch性能問題

太多的$watch將會導(dǎo)致性能問題,$watch如果不再使用,我們最好將其釋放掉。

$watch函數(shù)返回一個注銷監(jiān)聽的函數(shù),如果我們想監(jiān)控一個屬性,然后在稍后注銷它,可以使用下面的方式:

var watch = $scope.$watch('someModel.someProperty', callback);

//...

watch();

還有2個和$watch相關(guān)的函數(shù):

$watchGroup(watchExpressions, listener);

$watchCollection(obj, listener);

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論