这其实是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 { } ``` */