4-7 Angular-$watch

$watch

  • 3.监听对象

    • 1)如果使用$watch监听对象, 要在最后添加一个参数:true,否则监听不到
    • 2)默认false, 监听对象地址,如果对象属性值修改, 地址没有修改监听不到
    • 3)true 引入监听
  • 注意:

    • 1.$watch()方法, 有返回值, 是个方法,该方法名和返回值变量名相同
    • 2.取消$watch监听, 执行返回值这个方法,如: unWatch()方法

<body ng-app="app" ng-controller="skController">
<button ng-click="click()">点击</button>
{{name}}

<input type="text" ng-model="per.name">
<input type="text" ng-model="per.age">

</body>


<script src="angular.js"></script>
<script>
    //1.创建模块
    var app = angular.module('app', []);
    //2.创建控制器
    app.controller('skController', ['$scope',function ($scope) {
        $scope.name = '123';
        $scope.click = function () {
            $scope.name = 'sk666';

            //点击取消监听
            unWatch();
        }

        //1.监听name属性改变, 获取新值和旧值
        /* $scope.$watch('name', function (newValue, oldValue) {
         console.log('newValue= ' + newValue + '--' + 'oldValue= ' + oldValue);
         });*/

        //2.监听属性值
        /*$scope.$watch('per.age',  function (newValue, oldValue) {
            console.log('newValue= ' + newValue + '--' + 'oldValue= ' + oldValue);
        });*/

        /**
         3.监听对象
         1)如果使用$watch监听对象, 要在最后添加一个参数:true,否则监听不到
         2)默认false, 监听对象地址,如果对象属性值修改, 地址没有修改监听不到
         3)true 引入监听

         注意:
         1.$watch()方法, 有返回值, 是个方法,该方法名和返回值变量名相同
         2.取消$watch监听, 执行返回值这个方法,如: unWatch()方法

         */
        var unWatch = $scope.$watch('per',  function (newValue, oldValue) {
            console.log('newValue= ' + newValue + '--' + 'oldValue= ' + oldValue);
        }, true);

    }]);

</script>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容