第一步

<!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 = false
                       var 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');
                });
            });
        })
    }
}]);

  

 

posted on 2017-05-26 14:27  大笨鹰  阅读(1099)  评论(0编辑  收藏  举报