2016-07-05 4 views
0

ここには/test?id=123と表示され、それぞれのページが表示されているときにチェックが行われ、このチェックが失敗した場合はポップアップしてリダイレクトするアラートメッセージが表示されますあなたは'/'になります。アラートがある場合はDOMコンテンツを非表示にします

URLがヒットしたときにDOMコンテンツをHTMLページに読み込む点を除いて、これはうまくいきます。チェックが失敗してインデックスページにリダイレクトされた場合、DOMコンテンツを完全に隠すことができますか?これは、基本的に、警告メッセージがポップアップした場合、ユーザーはHTMLページに含まれている内容を見ることができず、すぐにリダイレクトする必要があることを意味します。

+0

DOMコンテンツをデフォルトで非表示に設定し、アラートがないときに表示することはできますか? – ChronixPsyc

+0

角度を使用してどのように達成できますか? – 221b

+1

を 'ng-show'を使って実行し、警告が表示されるかどうかを確認する条件を実行します。そうでない場合は、変数をtrueに設定するとコンテンツが表示されます。 (私はこれが動作するべきであると信じています。角度のあるエキスパートではなく、ちょうど手直ししました。) – ChronixPsyc

答えて

0

そうように私は、あなたの敏感なDOMのコンテンツをラップするng-ifを使用します。

<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に解決された場合にページからコンテンツを削除します。

角度コントローラでは、チェックが成功したか失敗したかによって、$scope.checkPassedの値をtrueまたはfalseに設定する必要があります。

これはng-showよりも優れています。これは、誰かがあなたのサイトを検査し、とにかくコンテンツを見ることができないことを意味するからです。

関連する問題