angularjs实现双击span标签,将span标签变成input标签
来源:互联网 发布:知所然又知其所以然 编辑:程序博客网 时间:2024/05/29 04:22
借助html5
的新特性contenteditable
和Angular的指令还是很容易做到
<body ng-app="MyApp"> <div class="test-container" ng-controller="MyController as vm"> <div class="test" content-editable ng-model="vm.test"></div> <hr/> <div class="test" ng-bind="vm.test"></div> </div> </body>
(function(){ angular.module('MyApp', []) .controller('MyController', MyController) .directive('contentEditable', contentEditable); MyController.$inject = []; contentEditable.$inject = []; function MyController(){ var vm = this; vm.test = 'Hello World!'; } function contentEditable(){ return { require: 'ngModel', link: function (scope, element, attrs, ctrl) { element.html(scope.vm.test); attrs.$set('contenteditable', false); ctrl.render = function (value) { element.html(value); }; ctrl.$setViewValue(element.html()); element.bind('dblclick', function () { if (!attrs.contenteditable) { attrs.$set('contenteditable', true); element[0].focus(); } }); element.bind('blur', function () { attrs.$set('contenteditable', false); scope.$apply(function () { ctrl.$setViewValue(element.html()); }); }); element.bind('keydown', function (event) { var esc_key = event.which === 27, enter_key = event.which === 13; if (esc_key || enter_key) { event.preventDefault(); element[0].blur(); } }); } }; }})();
阅读全文
0 0
- angularjs实现双击span标签,将span标签变成input标签
- span标签
- span标签
- a标签与span标签
- span标签、strong/b 标签
- HTML <span> 标签简介
- html-<span>标签
- div和span标签
- span标签name属性
- span标签使用说明
- HTML <span> 标签 (w3school)
- label、span标签小解
- span标签 设置宽度
- css<span>标签
- Div span 标签详解
- div和span标签
- <div>/<span>/<label>标签
- html span标签详解
- 分布式事务简介
- ajax请求后动态生成节点的事件失效
- AI和大数据如何给企业带来价值
- 用python实现排列组合
- Ubuntu 16.04安装MySQL(5.7.18)
- angularjs实现双击span标签,将span标签变成input标签
- Hibernate里如何增删查改?
- 《机器学习》阅读心得——九、聚类
- 关于Javascript定时器的使用
- 轻松理解Java垃圾回收
- 浅谈web网站架构演变过程
- 快速排序算法
- scala之控制结构和函数
- base64加密原理