zoukankan      html  css  js  c++  java
  • angularjs输入框自动变化高度(可输入div并运用ng-model)附带placeholder效果

    angular其实不再需要input和textarea标签来做输入功能,只需要给div加个h5属性contenteditable="true"即可使用ng-model实现双向绑定,和高度自适应的功能,

    苹果手机不支持h5属性 contenteditable="true",需要在这个div中添加样式-webkit-user-select:text 

    这里的ng-model只能绑定对象中的某一个元素,如ng-model=“content.item”

       div{

         -webkit-user-select:text; 

       }

       /*为空时显示 element attribute content*/
        div:empty:before{
         content: attr(placeholder);   /* element attribute*/
         color:#red;              /*content: 'this is content';*/
       }
       /*焦点时内容为空*/
        div:focus:before{
         content:none;
       }

    html代码

    <div contenteditable="true" class="texttitle zkht-create-answer" ng-model="content.item"></div>

    directive.js

    app.directive('contenteditable', function() {
      return {
        restrict: 'A', // 只用于属性
        require: '?ngModel', // get a hold of NgModelController
      link: function(scope, element, attrs, ngModel) {
        if (!ngModel) {
          return;
        } 
        // Specify how UI should be updated
        ngModel.$render = function() {
          element.html(ngModel.$viewValue || '');
        };
        // Listen for change events to enable binding
        element.on('blur keyup change', function() {
          scope.$apply(readViewText);
        });
        // No need to initialize, AngularJS will initialize the text based on ng-model attribute
        // Write data to the model
        function readViewText() {
          var html = element.html();
          // When we clear the content editable the browser leaves a <br> behind
          // If strip-br attribute is provided then we strip this out
          if (attrs.stripBr && html === '<br>') {
            html = '';
          }
          ngModel.$setViewValue(html);
        }
      }
    };

  • 相关阅读:
    基于HSharp使用C#对象建立并输出HTML
    基于HSharp 使用C#反序列化HTML并获取HTML中的特定内容
    iis最大连接数和队列长度
    强网拟态 2021 showyourflag Writeup
    ByteCTF 2021 bytecert Writeup
    基于 OpenSSL 的 RSA 消息加密及签名实现
    思维导图-2020的目标
    我的第一个博客
    【网络流24题】洛谷P4015 运输问题
    CSP/NOIP 防爆指南
  • 原文地址:https://www.cnblogs.com/cutone/p/5859336.html
Copyright © 2011-2022 走看看