AngularJS 中ng-model通过$watch动态取值

这个例子的意思是,当xxxx的长度不超过6时,xxxx和yyyy两个input的model是无关的,但当xxxx超过6,则yyyy会跟随其值而变化。

另一种做法是在input的ng-model后面添加ng-change关联一个函数,进行动态更新,也可以达到类似的效果。

这两种做法本质上都没有改变ng-model指向的对象,但是能把另一个model的变化反映到自己身上来。

 

<!doctype HTML>
<html>

<head lang="en">
  <meta charset="utf-8">

  <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"></script>
  <script type="text/javascript">
    var app = angular.module('app', []);
    app.controller('AppCtrl', function($scope) {

      $scope.xxxx = "apple";
      $scope.yyyy = "banana";

      $scope.$watch('xxxx', function() {

        if ($scope.xxxx.length > 6) {
          $scope.yyyy = "***" + $scope.xxxx + "***";
        } else {}
      });
    });
  </script>


</head>

<body ng-app="app" ng-controller="AppCtrl">

  <input type="text" ng-model="xxxx">
  <input type="text" ng-model="yyyy">

  <br/>
  <p>{{xxxx}}</p>
  <p>{{yyyy}}</p>

</body>

</html>

  

posted @ 2017-06-21 18:44  Pekkle  阅读(677)  评论(0编辑  收藏  举报