2016-07-05 39 views
0

假設我們有 - /test?id=123,並且當我們位於相應的頁面上時,此處會進行檢查,如果檢查失敗 - 則會彈出一個警告消息並重定向你到'/'如果存在警報,則隱藏DOM內容

現在,這個工作正常,除了當URL被點擊時它將DOM內容加載到HTML頁面。無論如何,我可以完全隱藏DOM內容,如果檢查失敗並將我重定向到索引頁面?這基本上意味着,如果彈出警告消息,用戶應該無法看到HTML頁面包含的內容,應該立即重定向。

+0

您可以設置默認隱藏的DOM內容,並在沒有警報時顯示它嗎? – ChronixPsyc

+0

如何使用角度來實現這一點? – 221b

+1

使用'ng-show',然後執行一個條件來檢查是否要顯示警報,如果不是,則將該變量設置爲true,然後將內容顯示給您。 (我相信這是它應該如何工作的,而不是一個有角度的專家,只會涉獵。) – ChronixPsyc

回答

0

我會用ng-if來包裝你的敏感DOM的內容,就像這樣:

<html> 
    <head> 
    ... 
    </head> 
    <body> 
     <header> 
     ... 
     </header> 
     <dialog ng-if="!checkPassed">This is your alert.</dialog> 
     <main ng-if="checkPassed" ng-cloak> 
      This is your protected content. 
     </main> 
     <footer> 
     ... 
     </footer> 
    </body> 
</html> 

ng-cloak將停止您的含量爲頁面加載可見。 ng-if將在條件(在此例中爲$scope.checkPassed)解析爲false時從您的頁面中刪除您的內容。

在您的Angular控制器中,您需要將值$scope.checkPassed設置爲truefalse,具體取決於您的檢查是成功還是失敗。

這比ng-show好,因爲這意味着某人無法檢查您的網站並檢查內容。