zoukankan      html  css  js  c++  java
  • 初学angular-简单的angular指令

    实现一个简单的input清空内容,且清空对应ngModel

    前台部分

    <html ng-app="hpapp">
    
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <link rel="stylesheet" href="css/test.css">
        <script type="text/javascript" src="js/angular.js"></script>
        <script type="text/javascript" src="js/inputempty.js"></script>
        <script type="text/javascript" src="js/info.js"></script>
    </head>
    
    <body>
        <div ng-controller="InfoCtrl">
            <input type="text" name="email" ng-model="model.email" inputempty maxvalue="10">
            <br>
            <br>
            <br>
            <input type="text" name="text" ng-model="model.text" inputempty>
            <br>
            <br>
            <br> {{model.email +"*"+ model.text}}
        </div>
    </body>
    
    </html>

    控制器部分  info.js

    1 var app = angular.module('hpapp');
    2 app.controller('InfoCtrl', function($scope) {
    3     $scope.model = {
    4         email: '1073520680',
    5         text: ''
    6     };
    7 });

    指令部分

    var app = angular.module('hpapp', []);
    app.directive('inputempty', function() {
        return {
            restrict: 'A',
            require: 'ngModel',
            link: function(scope, elem, attrs, ctrl) {
                var close = '<span class="clear"></span>';
                elem.next().bind('click', function() {
                    ctrl.$setViewValue('');
                    ctrl.$render();
                });
            }
    
        };
    });
    ctrl.$setViewValue('');//清空ngModel
    elem.val('');//清空表单

    css 部分

    .closeW{
        width: 16px;
        height: 16px;
        color: #ccc;
        text-align: center;
        line-height: 16px;
        border: 1px solid #ccc;
        border-radius:16px;
        float: left;
    }
    .content{
        width: 530px;
        border:1px solid #ccc;
        position: relative;
    }
    .editW{
        width: 480px;
        min-height: 280px;
        margin: 0;
        padding: 10px;
        outline: none;
    }
    .clear{
        clear: both;
    }
    .empty{
        width: 16px;
        height: 16px;
        color: #ccc;
        text-align: center;
        line-height: 16px;
        border-radius:16px;
        border: 1px solid #ccc;
        margin-left: -20px;    
        cursor: pointer;
        display: inline-block;
    }
    
    .clear {
        display: inline-block;
        width: 20px;
        height: 20px;
        position: absolute;
        margin-left: -20px;
        cursor: pointer;
        background: url('http://fanyi.baidu.com/static/i18n/zh/widget/translate/main/translateio/clear_9154fd87.png') no-repeat -20px -10px;
    }
    
    input{
        padding-right:20px;
        padding-left: 5px;
    }
  • 相关阅读:
    从零开始,SpreadJS新人学习笔记【第4周】
    如何使用JavaScript实现前端导入和导出excel文件
    【案例分享】在 React 框架中使用 SpreadJS 纯前端表格控件
    中国高考志愿填报与职业趋势分析
    Vue 2019开发者图谱
    从零开始,SpreadJS新人学习笔记【第3周】
    从零开始,SpreadJS 新人学习笔记(第二周)
    从零开始,SpreadJS 新人学习笔记
    Spread.NET 表格控件 V12.1 正式发布
    汇编语言-端口
  • 原文地址:https://www.cnblogs.com/happen-/p/5141213.html
Copyright © 2011-2022 走看看