angularjs实战

这其实是7、8月份干的工作,之前一直忙于考试和工作,最近才有时间总结下angularjs自己写的东西。这是自己实现的第一个angularjs的mod。

/**
 * Created by Eric 
 */

define(['app', 'text!wikimod/wiki/html/myfirstwiki.html'], function (app, htmlContent) {
    function registerController(wikiBlock) {
        app.registerController("myfirstwikiController", ['$scope',function ($scope) {
            // //console.log(wikiBlock);
            // // 模块参数初始化相关表单值
            // var modParams = wikiBlock.modParams || {};
            // // $scope.title = modParams.title || "name";
            // // $scope.content = modParams.content || "hello wiki module!!!";
            //  // $scope.isViewEdit = wikiBlock.editorMode;  // viewEdit 是否点击编辑按钮 <==> 视图编辑模式

            // // 模块参数表单配置提交函数
            // $scope.ok = function () {
            //     console.log("-------------------");
            //     return;
            //     modParams.title = $scope.title;
            //     // modParams.content = $scope.content;
            //     wikiBlock.applyModParams(modParams);  // 应用模块参数
            // }
           
            return function (html) {
            if (typeof html== 'string')   //判断类型为字符串
                return $scope.trustAsHtml(html);  
            return html;
        }
        }]);
    }
    
    function getAllText() {
    alert("抓取文本内容!");
    // 直接获取所有body中的dom对象
    var allDoms = document.body.getElementsByTagName('*');
    
    // 定义数组用于返回
    var array = [];
    
    // 循环所有dom对象进行处理
    for (var i = 0; i < allDoms.length; i++) {
    
        // 取出当前dom对象的html信息
        var html = allDoms[i].innerHTML;
        // 取出当前dom对象的所有子对象children
        var childrenDoms = allDoms[i].children;
        
        for (var j = 0; j < childrenDoms.length; j++) {
            // 循环所有子对象,并将子对象的内容从html中移除
            html = html.replace(childrenDoms[j].outerHTML, '');
        }
        
        // 如果html还剩余内容则继续处理
        if (html) {
            // 利用正则表达式去除多余内容
            // 四个正则表达式分别取出内容为:    
            // 1:样式内容<style>*</style>;  
            //  2: 脚本内容 <script>*</script>    
            //  3:html标签内容 <*>    
            //  4:所有不可见字符,例如 
,
,	等等
            // 风险: 如果文本内容中也有<xxx>,也会被剔除,暂时没有解决方案,如果不剔除html标签内容会有很多无用数据
            html = html.replace(/<style.*?>.*?</style>/ig, '').replace(/<script.*?>.*?</script>/ig, '').replace(/</?[^>]*>/g, '').replace(/s/g, '');
            if (html) {
                // 将字符筛选完毕后如果还有剩余内容则放入结果数组中
                array.push(html);
            }
        }
    }
    return array;
}
  
    // $(function(){  
    //         $.ajax(  
    //             {  
    //                 type:'get',  
    //                 url : "http://127.0.0.1:8080/KnowledgeServer/api/knowledgeMod/getKnowledgeList?page=1&radioCheck=1&input=%e5%ad%94%e5%ad%90",  
    //                 dataType : 'jsonp',  
    //                 jsonp:"jsoncallback",  
    //                 // success :function(data) {
    //                 // alert('success');  
    //                 //  alert("page:"+ data.page +" radioCheck:"+ data.radioCheck+"input:"+data.input); 
                        
    //                 // },  
    //                 // // error : function() {  
    //                 // //     alert('fail');  
    //                 // // }  
    //             success: function(data) {
    //                 if (data.success) { 
    //                         $("#searchResult").html(data.msg);
    //                     } else {
    //                         $("#searchResult").html("出现错误:" + data.msg);
    //                     }  
    //                 },
    //                 error: function(jqXHR){     
    //                    alert("发生错误:" + jqXHR.status);  
    //                 }
    //             }  
    //         );  
    // }) 
    
       function TestAjax()
                {
                    $.ajax({
                        type : "get",
                        url : "http://127.0.0.1:8080/KnowledgeServer/api/knowledgeMod/getKnowledgeList?page=1&radioCheck=1&input=%e5%ad%94%e5%ad%90", 
                        data :'',
                        //cache : false, //默认值true
                        dataType : "json",
                        jsonp: "callbackfun",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:callback)
                        jsonpCallback:"jsonpCallback",
                            //自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名
                            //如果这里自定了jsonp的回调函数,则success函数则不起作用;否则success将起作用
                        success : function(json){
                            alert(json.message);
                        },
                        error:function(){
                            alert("error");
                        }
                    });
                }

        function jsonpCallback(data) //回调函数
            {
                alert(data.message); 
            }



         return {
          render: function (wikiBlock) {
          // registerController(wikiBlock);
            getAllText();
            TestAjax();
            return  "<div></div>";       // 返回模块标签内容
                }
         }
});

/*
 ```@wiki/js/myfirstwiki
 {
 }
 ```
 */
情不知所起一往而深
原文地址:https://www.cnblogs.com/xingbiaoblog/p/7868533.html