angularjs控制层间的通信与$watch

来到汉得公司的第二周过去了,就在上周做了一个移动端的记账demo,前端技术为angularjs,因为demo中涉及到数据间的交互,学习了controller层间的通信,在CSDN和博客园上看了两篇文章,得到了很深的体会,现在为之前的学习做个总结。

       原文链接------angularJS中的$watch方法监听作用域:https://www.jianshu.com/p/3398f1d19320

       angular controller之间通信方式: https://www.cnblogs.com/freefish12/p/5761164.html

本篇博客是关于$watch方法监听父级controller,若是更多的了解$watch与父子级controller之间通信,请看以上两篇文章。

为了便于理解,写了一个demo,代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script>
</head>
<body ng-app="myApp">
<div ng-controller="parent">
    {{name}}
    <button ng-click="change()"></button>
    <div ng-controller="child">
        {{password}}
    </div>
</div>
<script>
    var app=angular.module('myApp',[]);
    app.controller('parent',function ($rootScope,$scope) {
        /*$scope.password='123456789'*/
        $scope.name='小王';
        $scope.password='小明';
        $scope.change=function(){
            $scope.name+=1;
        }
    });
    app.controller('child',function($scope){
        $scope.$parent.$watch('name',function (newvalue,oldvalue) {
            console.log(newvalue);
            console.log(oldvalue);
        },true)
    })
</script>
</body>
</html>

demo效果是点击按钮后,父级controller的name后加1,子级controller用$watch监听父级name的变化,注意的关键点是$watch方法有个布尔属性,默认为false,为true时会随着数据name的改变执行事件。还有name数据外要加引号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值