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

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

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

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í)改變了,然而并沒(méi)有出現(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ì)于后者文檔如是說(shuō):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)論

南昌县| 佛学| 旌德县| 陵川县| 汾阳市| 昌图县| 长丰县| 乌拉特前旗| 措勤县| 维西| 永仁县| 大埔区| 曲松县| 梓潼县| 安福县| 巩留县| 中江县| 汉沽区| 安阳市| 阿拉善盟| 伊通| 平远县| 集安市| 潼南县| 大化| 资兴市| 浮梁县| 长顺县| 晋城| 南靖县| 昭平县| 鄂尔多斯市| 辰溪县| 鹿泉市| 固阳县| 灵宝市| 忻城县| 普宁市| 西乌| 油尖旺区| 额尔古纳市|