前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >angularjs通过ng-change和watch两种方式实现对表单输入改变的监控

angularjs通过ng-change和watch两种方式实现对表单输入改变的监控

作者头像
小小许
发布2018-09-20 17:13:39
4310
发布2018-09-20 17:13:39
举报
文章被收录于专栏:angularejs学习篇

angularjs通过ng-change和watch两种方式实现对表单输入改变的监控

直接上练习代码

代码语言:javascript
复制
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
</head>
<body ng-app="myApp" ng-controller="myContro">
    <div>
        <h1>ng-change指令</h1>
        ng-change指令,当表单输入发生改变时,会触发该事件<br />
        <div>
            姓名:<input type="text" id="name1" ng-model="user.name"
                placeholder="请输入姓名" ng-change="inputChange()" />
        </div>
        <div>
            年龄:<input type="number" ng-model="user.age"
                placeholder="请输入年龄" ng-change="inputChange()" />
        </div>
        <div>{{user.message}}</div>
    </div>
    <div>
        <h1>通过监听改变达到和ng-chang一样的效果</h1>
        <div>
            姓名:<input type="text" id="name2" ng-model="user2.name"
                placeholder="请输入姓名" />
        </div>
        <div>
            年龄:<input type="number" ng-model="user2.age"
                placeholder="请输入年龄" />
        </div>
        <div>{{user2.message}}</div>
    </div>
</body>
</html>
<script src="../JS/angular.js"></script>
<script type="text/javascript">
    var app = angular.module("myApp", []);
    app.controller("myContro", function ($scope, $interpolate) {
        $scope.user = {
            name: "",
            age: "",
            message: ""
        };

        $scope.user2 = {
            name: "",
            age: "",
            message: ""
        };

        $scope.messageTemp = "{{name}},您好,您今年{{age}}岁啦!";
        var template = $interpolate($scope.messageTemp);
        $scope.inputChange = function () {
            $scope.user.message = template({ name: $scope.user.name, age: $scope.user.age });
        };

        //// 下面通过watch监听实现ng-change一样的效果
        $scope.$watch("user2.name", function (newValue, oldValue) {
            $scope.getMessage(newValue, oldValue);
        });

        $scope.$watch("user2.age", function (newValue, oldValue) {
            $scope.getMessage(newValue, oldValue);
        });

        $scope.getMessage = function (value1, value2) {
            if (value1 != value2) {
                $scope.user2.message = template({ name: $scope.user2.name, age: $scope.user2.age });
            }
        }
    });
</script>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-08-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档