angularJS使用编写KindEditor,UEidtor,jQuery指令,双重绑定
第一步
<!DOCTYPE html>
<html>
<head lang="en"><meta charset="UTF-8"><title></title></head>
<body ng-app="app" ng-controller="AppCtrl as vm">
<button ng-click="vm.click()">Click Me</button>
<ui-view></ui-view>
<script src="bower_components/angular/angular.min.js"></script>
<script src="bower_components/angular-ui-router/release/angular-ui-router.min.js"></script>
<script src="bower_components/oclazyload/dist/ocLazyLoad.min.js"></script>
<script src="app.js"></script>
</body>
</html>
第二步 app.js
var app = angular.module('webapp', ['ngRoute', 'oc.lazyLoad']);
第三步
1、KindEditor(自己使用)
//文本编辑器
app.directive('kindeditor', ['$ocLazyLoad',function ($ocLazyLoad) {return{restrict: 'AE',require: '?ngModel',link: function (scope, element, attrs, ctrl) {$ocLazyLoad.load('/Scripts/kindeditor/kindeditor-all-min.js').then(function() {var _initContent, editor;var fexUE = {initEditor: function () {editor = KindEditor.create(element[0],{width: '100%',height: '400px',resizeType: 1,uploadJson: '/Scripts/kindeditor/asp.net/upload_json.ashx',fileManagerJson: '/Scripts/kindeditor/asp.net/file_manager_json.ashx',formatUploadUrl: false,allowFileManager: true,afterChange: function () {ctrl.$setViewValue(this.html());}});},setContent: function (content) {if (editor) {editor.html(content);}}}if (!ctrl) {return;}_initContent = ctrl.$viewValue;ctrl.$render = function () {_initContent = ctrl.$isEmpty(ctrl.$viewValue) ? '' : ctrl.$viewValue;fexUE.setContent(_initContent);};fexUE.initEditor();});}};}]);
2,UEditor(借鉴自http://www.jb51.net/article/60435.htm)
angular.module("AdminApp").directive('uiUeditor', ["uiLoad", "$compile", function (uiLoad, $compile) {return {restrict: 'EA',require: '?ngModel',link: function (scope, element, attrs, ctrl) {uiLoad.load(['../Areas/AdminManage/Content/Vendor/jquery/ueditor/ueditor.config.js','../Areas/AdminManage/Content/Vendor/jquery/ueditor/ueditor.all.js']).then(function () {var _self = this,_initContent,editor,editorReady = falsevar fexUE = {initEditor: function () {var _self = this;if (typeof UE != 'undefined') {editor = new UE.ui.Editor({initialContent: _initContent,autoHeightEnabled: false,autoFloatEnabled: false});editor.render(element[0]);editor.ready(function () {editorReady = true;_self.setContent(_initContent);editor.addListener('contentChange', function () {scope.$apply(function () {ctrl.$setViewValue(editor.getContent());});});});}},setContent: function (content) {if (editor && editorReady) {editor.setContent(content);}}};if (!ctrl) {return;}_initContent = ctrl.$viewValue;ctrl.$render = function () {_initContent = ctrl.$isEmpty(ctrl.$viewValue) ? '' : ctrl.$viewValue;fexUE.setContent(_initContent);};fexUE.initEditor();});}};
}]);
3,jquery.Datatable:
angular.module('AdminApp').directive('uiDatatable', ['uiLoad', '$compile', function (uiLoad, $compile) {return function ($scope, $element, attrs) {$scope.getChooseData = function () {var listID = "";var chooseData = $element.find("input[name = IsChoose]:checkbox:checked");if (chooseData.length > 0) {for (var i = 0; i < chooseData.length; i++) {listID += chooseData[i].value + ",";}}return listID.substring(0, listID.length - 1);}$scope.refreshTable = function () {$scope.dataTable.fnClearTable(0); //清空数据$scope.dataTable.fnDraw(); //重新加载数据}uiLoad.load(['../Areas/AdminManage/Content/Vendor/jquery/datatables/jquery.dataTables.min.js','../Areas/AdminManage/Content/Vendor/jquery/datatables/dataTables.bootstrap.js','../Areas/AdminManage/Content/Vendor/jquery/datatables/dataTables.bootstrap.css']).then(function () {var options = {};if ($scope.dtOptions) {angular.extend(options, $scope.dtOptions);}options["processing"] = false;options["info"] = false;options["serverSide"] = true;options["language"] = {"processing": '正在加载...',"lengthMenu": "每页显示 _MENU_ 条记录数","zeroRecords": '<div style="text-align:center;font-size:12px">没有找到相关数据</div>',"info": "当前显示第 _PAGE_ 页 共 _PAGES_ 页","infoEmpty": "空","infoFiltered": "搜索到 _MAX_ 条记录","search": "搜索","paginate": {"first": "首页","previous": "上一页","next": "下一页","last": "末页"}}options["fnRowCallback"] = function (nRow, aData, iDisplayIndex, iDisplayIndexFull) {$compile(nRow)($scope);}$scope.dataTable = $element.dataTable(options);});$element.find("thead th").each(function () {$(this).on("click", "input:checkbox", function () {var that = this;$(this).closest('table').find('tr > td:first-child input:checkbox').each(function () {this.checked = that.checked;$(this).closest('tr').toggleClass('selected');});});})}
}]);
转载于:https://www.cnblogs.com/qiyecao/p/6908306.html
angularJS使用编写KindEditor,UEidtor,jQuery指令,双重绑定相关推荐
- Angularjs编写KindEditor,UEidtor指令
目前angularJS非常火热,本人也在项目中逐渐使用该技术,在angularJS中,指令可以说是当中非常重要的一部分,这里分享一些自己编写的指令: 注:本人项目中用了oclazyload进行部分JS ...
- AngularJS快速入门指南04:指令
AngularJS通过指令将HTML属性进行了扩展. AngularJS指令 AngularJS指令是带有ng-前缀的扩展HTML属性. ng-app指令用来初始化AngularJS applicat ...
- [置顶] 编写自己的JQUERY插件
如何编写自己的jquery插件 Jquery的插件主要分为三类: 1.封装对象方法的插件:大部分插件都是封装对象的插件 2.封装全局函数的插件:将独立的函数添加到jquery的命名空间之下.Jquer ...
- idea html ajax,在 IntelliJ IDEA 8.1中编写一个ajax jquery实例,取不到页面上的值
在 IntelliJ IDEA 8.1中编写一个ajax jquery实例,取不到页面上的值0 brnm12942014.08.17浏览115次分享举报 public class AjaxServle ...
- 编写高效的jQuery代码
编写高效的jQuery代码 最近写了很多的js,虽然效果都实现了,但是总感觉自己写的js在性能上还能有很大的提升.本文我计划总结一些网上找的和我本人的一些建议,来提升你的jQuery和javascri ...
- 玛塔机器人函数_玛塔学员世界机器人大赛首秀:能编写超50道指令,创意海洋保护方案超惊艳!...
原标题:玛塔学员世界机器人大赛首秀:能编写超50道指令,创意海洋保护方案超惊艳! 前段时间,一则关于AI技术的"乌龙"让人忍俊不禁. 在一场足球赛中,虽然具有AI追踪技术的摄像头被 ...
- 解密jQuery事件核心 - 绑定设计(一)
说起jQuery的事件,不得不提一下Dean Edwards大神 addEvent库,很多流行的类库的基本思想从他那儿借来的 jQuery的事件处理机制吸取了JavaScript专家Dean Edwa ...
- jQuery unbind 删除绑定事件 / 移除标签方法
jQuery unbind 删除绑定事件 unbind([type],[data]) 是 bind()的反向操作,从每一个匹配的元素中删除绑定的事件.如果没有参数,则删除所有绑定的事件.你可以将你用b ...
- jQuery on()方法绑定动态元素的点击事件无效
之前就一直受这个问题的困扰,在jQuery1.7版本之后添加了on方法,之前就了解过,其优越性高于live(),bind(),delegate()等方法,在此之前项目中想用这个来测试结果发现,居然动态 ...
最新文章
- ruby on rails 学习笔记
- Infragistics NetAdvantage控件的使用:该关系不是此 DataView 指向的表的父关系
- 桌面软件打开都会变成计算机,我不小心把电脑界面程序的打开方式都变成一种了,怎么还原啊?...
- 如何在linux系统写程序文件,Linux应用程序使用写文件调试程序的方法
- 软件测试 -------- 数据库设计 的 E-R 模型
- 科研|饶毅:科学在被淘汰的博士后引领下狂奔
- java中equals以及==的用法(简单介绍)
- 个人记账软件测试初学者,好用的个人记账软件
- RFSoC应用笔记 - RF数据转换器 -15- API使用指南之Libmetal与结构体说明
- 第七十五章 Caché 函数大全 $XECUTE 函数
- 实验3-1 求一元二次方程的根 (20分)
- 电商项目——商品规格管理
- python实现真值表
- Tarjan算法小结1——SCC
- web2.0中流行的设计元素:颜色
- netcore ajax上传,.netCore WebApi传输参变化
- 易地推招生拓客分享不去认真了解肯定找不到合适的招生团队
- 计算机技术与软件考试含金量,专家分析软考考试难不难 软考含金量怎么样
- 「著名建筑师的作品」那些年,那些令人“震撼”的现代建筑!
- 大数据基础以及项目视频下载(Spark、Hadoop等),面试必要学习
热门文章
- Flash 平台音视频直播的实现
- abaqus dat文件 matlab_基于MPCCI的FLUENT与ABAQUS流固耦合分析步骤
- flash作业_在线作业产品的基本构成与逻辑分解
- 2021江西高考成绩查询方式6,2021年江西高考成绩6月23日公布 多种查分方式
- c语言从excal读取字符串,C语言操作EXCEL文件(读写)
- jscript php,PHP,JScript和VBScript函数和类的语法
- 数据结构折半查找例题_山东2011专升本计算机专业数据结构练习题 - 图文
- Helm 3 完整教程(二十三):使用 Files 方法在模板中读取文件内容
- 判断位数(Java)
- 地址栏 输入 参数 刷新参数丢失_Java 编程技巧:如何实现参数的输入输出?