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);
        }
      }
    };

  • 相关阅读:
    第三十一篇 玩转数据结构——并查集(Union Find)
    第三十篇 玩转数据结构——字典树(Trie)
    开发Electron可能用到的工具
    最新NetMonitor代码
    用C++/CLI搭建C++和C#之间的桥梁
    xaml实现无边框窗口
    用xaml画的带阴影3D感的圆球
    创作了一个xml的替代格式
    域名投资入门和技巧
    Compaq Visual Fortran生成静态库的方法及使用
  • 原文地址:https://www.cnblogs.com/cutone/p/5859336.html
Copyright © 2011-2022 走看看