基於angularjs單頁面應用web的全站搜尋思路心得
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