Angularjs监听事件$watch

<body ng-app="app">
    <section ng-controller="myCtrl">
        单价:<input type="text" maxlength="5" οnkeyup="value=value.replace(/[^\d]/g,'')" placeholder="请输入数字" ng-model="shop.money" />
        数量:<input type="text" ng-model="shop.count" />
        运费:{{shop.fre}}
        <br />

        <p>总价:{{total() + shop.fre | currency:'¥' }}</p>
    </section>
</body>
</html>
<script src="js/angular.min.js"></script>
<script>
    var myapp = angular.module("app", []);
    myapp.controller('myCtrl', ["$scope", function ($scope) {
        $scope.shop = {
            money: "",
            count: "",
            fre: 10
        };
        $scope.total = function () {
            return $scope.shop.money * $scope.shop.count;
        }
        //$watch 接收3个参数,前两个是必选的,第一个为监听的对象或者属性,也可以监听一个函数,第二个为被监听对象或者属性变化时的回调,第三个为true,表示深度监听
        //当为true的时候监听的第一个为对象时,对象的某个属性发生改变也会监听到并触发回调,没写默认false对象某个属性发生改变不会触发回调
        //回调参数接收3个参数,第一个为新值,第二个为旧值,前面监听的是什么回调里的就是前面监听的对象或者属性或者函数
        $scope.$watch('shop', function (newVal, oldVal) {
            //if (newVal.money.length > 4) {
            //    alert("长度为4")
            //}
            //if()
            console.log(newVal.money);
            console.log(newVal.count);

        }, true);
    }]);
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值