$watch簡單使用

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

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

  1. watchExpression:監(jiān)聽的對象,它可以是一個angular表達(dá)式如'name',或函數(shù)如function(){return $scope.name}。

  2. listener:當(dāng)watchExpression變化時會被調(diào)用的函數(shù)或者表達(dá)式,它接收3個參數(shù):newValue(新值), oldValue(舊值), scope(作用域的引用)

  3. objectEquality:是否深度監(jiān)聽,如果設(shè)置為true,它告訴Angular檢查所監(jiān)控的對象中每一個屬性的變化. 如果你希望監(jiān)控?cái)?shù)組的個別元素或者對象的屬性而不是一個普通的值, 那么你應(yīng)該使用它

$watch性能問題
太多的$watch將會導(dǎo)致性能問題,$watch如果不再使用,我們最好將其釋放掉。
$watch函數(shù)返回一個注銷監(jiān)聽的函數(shù),如果我們想監(jiān)控一個屬性,然后在稍后注銷它,可以使用下面的方式:
var watch = $scope.$watch('someModel.someProperty', callback);
//...
watch();

代碼##

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script src="angular/angular.min.js"></script>
    <!--<script src="angular/angular.js"></script>-->
</head>
<body ng-app="myApp"  ng-controller="myController" >
<form>
    starting: <input type="text"  ng-model="funding.staringEs"/>
    <br/>
    recommendation:{{funding.needed}}
</form>

<script>
var app=angular.module("myApp",[]);
    app.controller('myController',function($scope){

       $scope.funding={staringEs:0,needed:0};

        $scope.$watch('funding.staringEs',function(newValue,oldValue,scope){
            $scope.funding.needed=$scope.funding.staringEs*122;
            console.log("newValue",newValue,"oldValue",oldValue,'scope',scope.funding);
        });
    })
</script>
</body>
</html>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容