最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Angular中使用$watch監(jiān)聽object屬性值的變化(詳解)

 更新時(shí)間:2017年04月24日 08:03:36   投稿:jingxian  
下面小編就為大家?guī)硪黄狝ngular中使用$watch監(jiān)聽object屬性值的變化(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

Angular中的$watch可以監(jiān)聽屬性值的變化,然后并做出相應(yīng)處理。

常見用法:

$scope.$watch("person", function(n, o){
  //todo something...
})

 

但是對(duì)于一個(gè)對(duì)象中的某個(gè)屬性值變化時(shí),$watch似乎不管用了。

示例代碼:

<body>
  <div ng-controller="mainCtrl">
    <input id="myText" type="text" ng-model="person.name"/>
    <h2>{{person}}</h2>
    <h2>Status: {{status}}</h2>
  </div>
  <script>
  angular.module('myApp', [])
    .controller('mainCtrl', function ($scope) {
      $scope.person = {
        name:"allen",
        age:21
      }

      $scope.$watch("person", function(n, o){
        //取消第一次加載時(shí)的監(jiān)聽響應(yīng)
        if(n == o){
          return;
        }
        $scope.status = "changed"
      })
  })
</script>
</body>

 

我們?yōu)檩斎肟蚪壎藀erson對(duì)象的name屬性,然而當(dāng)我們改變輸入框的值時(shí)候,{{person}}確實(shí)改變了,然而并沒有出現(xiàn)我們想要的change字符。

效果:

 我們需要為$watch方法額外添加一個(gè)true參數(shù),使之達(dá)到我們想要的效果:

$scope.$watch("person", function(n, o){
  if(n == o){
    return;
  }
  $scope.status = "changed";
},true)

$watch方法完整的使用方式是這樣的:

$watch(watchExpression, [listener], [objectEquality]);

第一個(gè)是監(jiān)聽的參數(shù)名稱,剩下兩個(gè)可選參數(shù)分別為處理函數(shù)和是相等比較的方式,對(duì)于后者文檔如是說:Compare for object equality using angular.equals instead of comparing for reference equality. 即是否使用angular.equals方法進(jìn)行比較。

如此效果變?yōu)椋?/strong>

以上這篇Angular中使用$watch監(jiān)聽object屬性值的變化(詳解)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

定日县| 喀喇沁旗| 陵川县| 太原市| 邵武市| 交城县| SHOW| 怀集县| 阿鲁科尔沁旗| 永康市| 麟游县| 山西省| 克拉玛依市| 汶上县| 河源市| 泰和县| 颍上县| 松滋市| 延长县| 金塔县| 崇信县| 项城市| 扶沟县| 灯塔市| 琼海市| 宁明县| 灵台县| 舒城县| 灵璧县| 织金县| 长寿区| 巴彦淖尔市| 宝丰县| 天镇县| 两当县| 彝良县| 江都市| 剑河县| 宜宾县| 龙泉市| 张家港市|