zoukankan      html  css  js  c++  java
  • 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
     {
     }
     ```
     */
    情不知所起一往而深
  • 相关阅读:
    5. 详解创建Vue实例传入的options【暂时3个】
    编程的小知识点:
    4. Vue的 MVVM模式
    3. Vue做一个计数器 --新属性:methods、新的指令:@click
    8. Spring 注解开发(原始注解)
    2. 第一个Vue程序
    1.VUE 的安装
    【洛谷 3388】割点
    【洛谷 1063】能量项链
    三堆石子
  • 原文地址:https://www.cnblogs.com/xingbiaoblog/p/7868533.html
Copyright © 2011-2022 走看看