基于angularjs单页面应用web的全站搜索思路心得
2018-01-31 18:05
302 查看
1.html部分,在搜索框中加上keydown监听事件,在搜索按钮上加上点击事件,这样在搜索框中按enter键就可以搜索
<input type="text" id="webSiteSearchInput" ng-model="app.keyword" ng-keydown="funKeyDownSearch($event)" placeholder="请输入关键字..." />
<a class="btnSearch" ng-click="webSiteSearch()"><i class="fa fa-search"></i> 诚信搜索</a>
2、在主页面的js中,点击事件方法,不为空时,跳转搜索页,若停留到搜索页,则reload搜索页;已经keydown监听enter键,然后调用搜索事件
$scope.webSiteSearch = function () {
if ($scope.app.keyword == "") {
sp.dialog("关键字不能为空!");
} else {
sessionStorage.setItem("chengXinWebKeyWord", $scope.app.keyword);
if($location.path() =='/credible/keyWordSearch'){
$state.reload('credible/keyWordSearch')
}else{
$location.path('credible/keyWordSearch');
}
//alert($scope.app.keyword);
}
}
$scope.funKeyDownSearch = function (e) {
var keycode = window.event ? e.keyCode : e.which;
if (keycode == 13) {
$scope.webSiteSearch();
}
};
3.搜索结果展示页---
3.1. 获取到富文本里面搜索内容之后,将里面的所有html标签,都替换掉,然后截取长的以省略号显示
var objString = item.CONTENT; //接收新闻内容
var dd = objString.replace(/<\/?.+?>/g, ""); ///替换html标签
var dds = dd.replace(/ /g, ""); ////替换空格
var objLength = dds.length;
var num = 190;
if (objLength > num) {
dds = dds.substring(0, num) + "...";
item.CONTENT = dds;
} else {
item.CONTENT = dds;
}
3.2. 根据后台返回的联查询的数据库表明,进行拼接跳转路径url
/////得到当前网址,然后截取前面部分,最后与各个不同表的链接拼到一起
var get_url = $location.absUrl(); ///得到网址
var get_url_split = get_url.split('credible'); ///将网址拆分成数组,
var set_url = get_url_split[0]; ///取数组前面部分
if (item.TYPE == "PICTURENEWS") {
//图片新闻
item.URL = set_url + "credible/imgNewsDetail?id=" + item.ID + "";
} else if (item.TYPE == "HONESTYCULTURE") {
//诚信文化
item.URL = set_url + "credible/cultureDetail?id=" + item.ID + "";
} else if (item.TYPE == "GENERALNEWS") {
//普通新闻
item.URL = set_url + "credible/problemsDetail?id=" + item.ID + "";
} else if (item.TYPE == "POLICYREGULATION") {
//政策法规
item.URL = set_url + "credible/policyDetail?id=" + item.ID + "";
} else {
//政策图解
item.URL = set_url + "credible/policyImg?id=" + item.ID + "";
}
在线网上浏览网址:http://47.92.116.158:8872/chengxinweb/#/credible/index
<input type="text" id="webSiteSearchInput" ng-model="app.keyword" ng-keydown="funKeyDownSearch($event)" placeholder="请输入关键字..." />
<a class="btnSearch" ng-click="webSiteSearch()"><i class="fa fa-search"></i> 诚信搜索</a>
2、在主页面的js中,点击事件方法,不为空时,跳转搜索页,若停留到搜索页,则reload搜索页;已经keydown监听enter键,然后调用搜索事件
$scope.webSiteSearch = function () {
if ($scope.app.keyword == "") {
sp.dialog("关键字不能为空!");
} else {
sessionStorage.setItem("chengXinWebKeyWord", $scope.app.keyword);
if($location.path() =='/credible/keyWordSearch'){
$state.reload('credible/keyWordSearch')
}else{
$location.path('credible/keyWordSearch');
}
//alert($scope.app.keyword);
}
}
$scope.funKeyDownSearch = function (e) {
var keycode = window.event ? e.keyCode : e.which;
if (keycode == 13) {
$scope.webSiteSearch();
}
};
3.搜索结果展示页---
3.1. 获取到富文本里面搜索内容之后,将里面的所有html标签,都替换掉,然后截取长的以省略号显示
var objString = item.CONTENT; //接收新闻内容
var dd = objString.replace(/<\/?.+?>/g, ""); ///替换html标签
var dds = dd.replace(/ /g, ""); ////替换空格
var objLength = dds.length;
var num = 190;
if (objLength > num) {
dds = dds.substring(0, num) + "...";
item.CONTENT = dds;
} else {
item.CONTENT = dds;
}
3.2. 根据后台返回的联查询的数据库表明,进行拼接跳转路径url
/////得到当前网址,然后截取前面部分,最后与各个不同表的链接拼到一起
var get_url = $location.absUrl(); ///得到网址
var get_url_split = get_url.split('credible'); ///将网址拆分成数组,
var set_url = get_url_split[0]; ///取数组前面部分
if (item.TYPE == "PICTURENEWS") {
//图片新闻
item.URL = set_url + "credible/imgNewsDetail?id=" + item.ID + "";
} else if (item.TYPE == "HONESTYCULTURE") {
//诚信文化
item.URL = set_url + "credible/cultureDetail?id=" + item.ID + "";
} else if (item.TYPE == "GENERALNEWS") {
//普通新闻
item.URL = set_url + "credible/problemsDetail?id=" + item.ID + "";
} else if (item.TYPE == "POLICYREGULATION") {
//政策法规
item.URL = set_url + "credible/policyDetail?id=" + item.ID + "";
} else {
//政策图解
item.URL = set_url + "credible/policyImg?id=" + item.ID + "";
}
在线网上浏览网址:http://47.92.116.158:8872/chengxinweb/#/credible/index
相关文章推荐
- 寻求全站搜索功能开发思路
- 浅析基于WEB前端页面的页面内容搜索的实现思路
- 浅析基于WEB前端页面的页面内容搜索的实现思路
- 基于B-树和B+树的使用:数据搜索和数据库索引的详细介绍
- 记一次企业级爬虫系统升级改造(五):基于JieBaNet+Lucene.Net实现全文搜索
- 基于广度优先搜索的拼图游戏算法
- 基于嵌入式Linux下GCC编译器__sync_sub_and_fetch_4错误的解决心得
- 最新完成了基于Web 2.0的搜索网站开发:聚度网http://www.crossgo.com
- 中文文本情感分析:基于机器学习方法的思路
- poj 1330 Nearest Common Ancestors(LCA 基于二分搜索+st&rmq的LCA)
- 基于Mesos、Docker、Marathon实现的可伸缩微服务思路
- 基于栈指纹检测缓冲区溢出的一点思路
- 百度“搜索设置”之基于定位下拉框或者需要点击link才显示的下拉框,二次定位与多次定位实现的实际效果区别
- 我看好基于地图的本地搜索
- Google真的基于搜索做RSS了。
- Google搜索WebShell的实际处理思路
- 几点基于Web日志的Webshell检测思路
- 利用 Google 搜索学术论文和资源的一些心得
- 基于postgres的应用软件的拼音搜索实现
- 基于时间序列的异常检测系统的实现思路之一