第一步

<!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指令,双重绑定相关推荐

  1. Angularjs编写KindEditor,UEidtor指令

    目前angularJS非常火热,本人也在项目中逐渐使用该技术,在angularJS中,指令可以说是当中非常重要的一部分,这里分享一些自己编写的指令: 注:本人项目中用了oclazyload进行部分JS ...

  2. AngularJS快速入门指南04:指令

    AngularJS通过指令将HTML属性进行了扩展. AngularJS指令 AngularJS指令是带有ng-前缀的扩展HTML属性. ng-app指令用来初始化AngularJS applicat ...

  3. [置顶]       编写自己的JQUERY插件

    如何编写自己的jquery插件 Jquery的插件主要分为三类: 1.封装对象方法的插件:大部分插件都是封装对象的插件 2.封装全局函数的插件:将独立的函数添加到jquery的命名空间之下.Jquer ...

  4. idea html ajax,在 IntelliJ IDEA 8.1中编写一个ajax jquery实例,取不到页面上的值

    在 IntelliJ IDEA 8.1中编写一个ajax jquery实例,取不到页面上的值0 brnm12942014.08.17浏览115次分享举报 public class AjaxServle ...

  5. 编写高效的jQuery代码

    编写高效的jQuery代码 最近写了很多的js,虽然效果都实现了,但是总感觉自己写的js在性能上还能有很大的提升.本文我计划总结一些网上找的和我本人的一些建议,来提升你的jQuery和javascri ...

  6. 玛塔机器人函数_玛塔学员世界机器人大赛首秀:能编写超50道指令,创意海洋保护方案超惊艳!...

    原标题:玛塔学员世界机器人大赛首秀:能编写超50道指令,创意海洋保护方案超惊艳! 前段时间,一则关于AI技术的"乌龙"让人忍俊不禁. 在一场足球赛中,虽然具有AI追踪技术的摄像头被 ...

  7. 解密jQuery事件核心 - 绑定设计(一)

    说起jQuery的事件,不得不提一下Dean Edwards大神 addEvent库,很多流行的类库的基本思想从他那儿借来的 jQuery的事件处理机制吸取了JavaScript专家Dean Edwa ...

  8. jQuery unbind 删除绑定事件 / 移除标签方法

    jQuery unbind 删除绑定事件 unbind([type],[data]) 是 bind()的反向操作,从每一个匹配的元素中删除绑定的事件.如果没有参数,则删除所有绑定的事件.你可以将你用b ...

  9. jQuery on()方法绑定动态元素的点击事件无效

    之前就一直受这个问题的困扰,在jQuery1.7版本之后添加了on方法,之前就了解过,其优越性高于live(),bind(),delegate()等方法,在此之前项目中想用这个来测试结果发现,居然动态 ...

最新文章

  1. ruby on rails 学习笔记
  2. Infragistics NetAdvantage控件的使用:该关系不是此 DataView 指向的表的父关系
  3. 桌面软件打开都会变成计算机,我不小心把电脑界面程序的打开方式都变成一种了,怎么还原啊?...
  4. 如何在linux系统写程序文件,Linux应用程序使用写文件调试程序的方法
  5. 软件测试 -------- 数据库设计 的 E-R 模型
  6. 科研|饶毅:科学在被淘汰的博士后引领下狂奔
  7. java中equals以及==的用法(简单介绍)
  8. 个人记账软件测试初学者,好用的个人记账软件
  9. RFSoC应用笔记 - RF数据转换器 -15- API使用指南之Libmetal与结构体说明
  10. 第七十五章 Caché 函数大全 $XECUTE 函数
  11. 实验3-1 求一元二次方程的根 (20分)
  12. 电商项目——商品规格管理
  13. python实现真值表
  14. Tarjan算法小结1——SCC
  15. web2.0中流行的设计元素:颜色
  16. netcore ajax上传,.netCore WebApi传输参变化
  17. 易地推招生拓客分享不去认真了解肯定找不到合适的招生团队
  18. 计算机技术与软件考试含金量,专家分析软考考试难不难 软考含金量怎么样
  19. 「著名建筑师的作品」那些年,那些令人“震撼”的现代建筑!
  20. 大数据基础以及项目视频下载(Spark、Hadoop等),面试必要学习

热门文章

  1. Flash 平台音视频直播的实现
  2. abaqus dat文件 matlab_基于MPCCI的FLUENT与ABAQUS流固耦合分析步骤
  3. flash作业_在线作业产品的基本构成与逻辑分解
  4. 2021江西高考成绩查询方式6,2021年江西高考成绩6月23日公布 多种查分方式
  5. c语言从excal读取字符串,C语言操作EXCEL文件(读写)
  6. jscript php,PHP,JScript和VBScript函数和类的语法
  7. 数据结构折半查找例题_山东2011专升本计算机专业数据结构练习题 - 图文
  8. Helm 3 完整教程(二十三):使用 Files 方法在模板中读取文件内容
  9. 判断位数(Java)
  10. 地址栏 输入 参数 刷新参数丢失_Java 编程技巧:如何实现参数的输入输出?