栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用ng

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用ng

contenteditable标签不能直接与angular的ng模型一起使用,因为contenteditable的方式会在每次更改时重新渲染dom元素。

为此,您必须使用自定义指令包装它:

JS:

angular.module('customControl', ['ngSanitize']).directive('contenteditable', ['$sce', function($sce) {  return {    restrict: 'A', // only activate on element attribute    require: '?ngModel', // get a hold of NgModelController    link: function(scope, element, attrs, ngModel) {      if (!ngModel) return; // do nothing if no ng-model      // Specify how UI should be updated      ngModel.$render = function() {        element.html($sce.getTrustedHtml(ngModel.$viewValue || ''));      };      // Listen for change events to enable binding      element.on('blur keyup change', function() {        scope.$evalAsync(read);      });      read(); // initialize      // Write data to the model      function read() {        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);      }    }  };}]);

HTML

<form name="myForm"> <div contenteditable      name="myWidget" ng-model="userContent"      strip-br="true"      required>Change me!</div>  <span ng-show="myForm.myWidget.$error.required">Required!</span> <hr> <textarea ng-model="userContent"></textarea></form>

从原始文档中获取



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/376339.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号