解決AngualrJS頁面刷新導(dǎo)致異常顯示問題
緒
俗話說,細(xì)節(jié)決定成敗,編程亦是如此。編程過程中我們可能會(huì)不自覺的忽視一些細(xì)節(jié)問題,殊不知,這些細(xì)節(jié)正是導(dǎo)致頁面顯示出現(xiàn)問題的地方。今略舉一例,與君共勉之。
頁面正常加載后,顯示如下:

按F5刷新之后,頁面如下所示:

很明顯,頁面顯示出現(xiàn)了異常?;剡^頭再看看Chrome的錯(cuò)誤提示,

具體代碼如下:

正是以上代碼導(dǎo)致了錯(cuò)誤的發(fā)生。
追根溯源
讓我們回顧一下,錯(cuò)誤到底是如何發(fā)生的。正常加載情況下,頁面正常顯示很容易理解,程序是按照既定的數(shù)據(jù)流走的。但是按F5刷新之后,$stateParams.uid已經(jīng)不存在了,此時(shí)再次調(diào)用就會(huì)出現(xiàn)undefined的錯(cuò)誤,導(dǎo)致頁面加載出現(xiàn)異常。
如何解決這類問題呢?
首先應(yīng)在語句執(zhí)行之前添加變量判斷語句,若變量存在且不為空,則可繼續(xù)執(zhí)行其它流程。代碼如下:
$scope.pageNumber = 1; // 起始查詢頁碼
$scope.totalItems = 0; // 查詢數(shù)據(jù)總數(shù)
$scope.pageCnt = 1; // 初始化總頁數(shù)
if($stateParams.uid != "" && $stateParams.uid != null && typeof(instance.shopStatementDtl) != "undefined")
{
.................
.................
}
執(zhí)行后效果:

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!
相關(guān)文章
Angularjs 實(shí)現(xiàn)移動(dòng)端在線測評(píng)效果(推薦)
這篇文章主要介紹了Angularjs 實(shí)現(xiàn)移動(dòng)端在線測評(píng)效果,需要的朋友可以參考下2017-04-04
AngularJS自定義過濾器用法經(jīng)典實(shí)例總結(jié)
這篇文章主要介紹了AngularJS自定義過濾器用法,結(jié)合實(shí)例形式總結(jié)分析了AngularJS自定義過濾器進(jìn)行包含、替換、篩選、過濾、排序等操作相關(guān)實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下2018-05-05
AngularJs ng-repeat 嵌套如何獲取外層$index
這篇文章主要介紹了AngularJs ng-repeat 嵌套如何獲取外層$index的相關(guān)資料,需要的朋友可以參考下2016-09-09
Angular HMR(熱模塊替換)功能實(shí)現(xiàn)方法
本篇文章主要介紹了Angular HMR(熱模塊替換)功能實(shí)現(xiàn)方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04
使用AngularJS編寫多選按鈕選中時(shí)觸發(fā)指定方法的指令代碼詳解
最近做項(xiàng)目時(shí)遇到了需要用到多選按鈕選中觸發(fā)事件的功能,小編試著手寫一個(gè)指令,具體實(shí)現(xiàn)代碼大家參考下本文吧2017-07-07
Angularjs Ng_repeat中實(shí)現(xiàn)復(fù)選框選中并顯示不同的樣式方法
今天小編就為大家分享一篇Angularjs Ng_repeat中實(shí)現(xiàn)復(fù)選框選中并顯示不同的樣式方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-09-09

