2017-09-01 2 views
0

ログインボタンとその他のコンポーネントを持つ1つのアプリがあります。ページをロードするときに、認証RESTサービスを呼び出す必要があります。認証が無効になっている場合は、ログインボタンを表示しないでください。同様に、認証が有効になっているときにログインボタンを表示する必要があります。REST APIのレスポンスに基づいてangularjsがレンダリングされます

私がRESTを確認している限り、API呼び出しは非同期であり、応答が得られる前にページが読み込まれます。

下記のリンクで述べたように私も約束を使用してみましたが、それは http://markdalgleish.com/2013/06/using-promises-in-angularjs-views/

がどのように私は条件付きでREST API呼び出しからの応答に基づいてビューをレンダリングすることができます助けることができませんでしたか?

答えて

0

angularjsのng-ifディレクティブを使用できます。 REST APIレスポンスのスコープ変数を更新して、ng-if = trueにします。これにより、認証が完了したときにのみログインボタンが作成されます。

0

ng-showディレクティブを使用できます。認証APIの応答に基づいて、ログインボタンの表示/非表示を使用することができます。

0

最初に1つのスコープをfalseに設定し、この変数を使用してログインボタンを非表示にします。

$scope.loginButton = false; 

ng-showまたはng-ifディレクティブを使用して、html要素を非表示にして表示できます。

<input type="submit" ng-show = "loginButton"> 

サービスからの応答を取得し、応答を確認します。認証ステータスが有効な場合は、スコープ変数をtrueにします。

$scope.loginButton = true; 
+0

私はinit()でREST APIを呼び出します。 ng-showでは、REST APIからの応答が来るまでにページが読み込まれ、ログインボタンが表示されます。その後も、私はRESTサービスからの応答を得て、$ scope.loginButton = falseを変更すると、ページが更新されず、ログインボタンが表示されます。 –

+0

init()関数の前に$ rootScope.loginButton = falseのように$ rootScopeを使って変数を宣言します。 –

関連する問題