0
私はC#ヘルパーを使ってビューを構築し、angular2はコントローラを呼び出してC#によって生成されたビューのhtmlを受け取ることでこのビューを消費します。 しかし、私の問題は、ユーザーがビューにアクセスする権限がなく、コントローラーが401 Unautorizedを返すときにエラーが発生し、テンプレートの読み込みに失敗し、キャッシュをクリアして有効な権限で再ロードするまでコンポーネントが壊れてしまいます。templateUrlがangular2で有効かどうかを確認するにはどうすればよいですか?
コンポーネントを読み込む前に、どうやってtemplateUrlを検証できますか?
たぶん、あなたはあなたのユーザーがルートにアクセスする権利を有することを確認するためにガードを使用することができます。たとえば、ユーザーが特定のコンポーネントをロードしているルートにアクセスしようとすると、サーバーを呼び出してユーザーがテンプレートにアクセスできるかどうかを確認します。 もし彼が権利を持っていれば、ルートはアクティブになり、そうでなければ、他の場所にリダイレクトされます。この方法では、壊れた状況があってはなりません。 –
@AlexBeugnet角度のtemplateUrlがロードされた後にガードイベントが実行されるため、これを行うことはできません。 – Carlinhos
これは変わったようです...テンプレートは、ルートがアクティブになったときにのみ読み込まれます。そして、ガードが解決されない場合、あなたはルートに到達すべきではありません... –