Kinvey HTML5 ライブラリを使用して、ログインに Google ID を使用するクライアント側アプリを構築しようとしています。Oauth トランザクションに関する限り、すべて問題ないように見えますが、スコープ パラメーターを使用してログイン ボタンの表示を切り替えようとしており、Kinveyconnect
メソッドへのコールバック内で、Angular が変更を検出していないようです。 .
サービス:
connect: function(successFn, failureFn) {
return Kinvey.Social.connect(null, 'google',
{
success: successFn,
failure: failureFn
});
}
ログインリンクのディレクティブ:
$scope.login = function() {
Login
.connect(function(response) {
$scope.loggedIn = true;
},
function(response) {
});
}
ディレクティブ テンプレート:
<div>
<button ng-hide="loggedIn" type="button" class="btn" ng-click="login()">Login with Google ({{loggedIn}})</button>
<div class="btn-group btn-small" ng-show="loggedIn">
<a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
Hello, {{user.socialData.name}} <span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><a href="/profile">My Profile</a></li>
<li><a href="/performance">My Performance</a></li>
<li class="divider"></li>
<li><a href="/logout" ng-click="logout()">Log Out</a></li>
</ul>
</div>
</div>
目標は、ログイン ボタンの表示とドロップダウンの表示を切り替えることです。私がやっていることがうまくいかない理由はわかりません。を使用$timeout
して値の変更をシミュレートしてもloggedIn
、正しい動作が生成されます。