###前提・実現したいこと
Monacaアプリから会員管理機能を使う
http://mb.cloud.nifty.com/doc/current/tutorial/exchange-user-management.html
controllerをつかってやってます。会員やデータはニフクラで管理しています。
上記のチュートリアルを参考にしながら、ログイン機能をつくっていたのですが
ログインページを表示するとき、既にログイン済の場合に実行するはずのpushPageが動いてなくて困っています。
同ページのログインボタンを押下した場合は動作します。
ログイン済時、ログイン成功時はタブバーのページへ遷移します。
よろしくお願いいたします。
###該当のソースコード
index.html
html
1<head > 2 <meta charset="utf-8"> 3 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> 4 <meta http-equiv="Content-Security-Policy" content="default-src * data: gap: https://ssl.gstatic.com; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'"> 5 <script src="components/loader.js"></script> 6 <link rel="stylesheet" href="components/loader.css"> 7 <link rel="stylesheet" href="css/style.css"> 8 <script src="js/app.js"></script> 9</head> 10<body > 11<ons-navigator var="myNavigator" page="login.html" > 12</ons-navigator> 13</body>
login.html
html
1<ons-page ng-controller="loginController"> 2 <ons-toolbar> 3 <div class="left"> 4 <ons-back-button>もどる</ons-back-button> 5 </div> 6 <div class="center"> 7 ログイン 8 </div> 9 </ons-toolbar> 10 <div style="text-align: center"> 11 <p> 12 <input type="text" placeholder="ユーザー名" id="loginUserName" ng-model="loginUserName"></input> 13 </p> 14 <p> 15 <input type="password" placeholder="パスワード" id="loginPassword" ng-model="loginPassword"></input> 16 </p> 17 <p> 18 <ons-button ng-click="login(loginUserName,loginPassword);">ログイン</ons-button> 19 </p> 20 </div> 21</ons-page>
app.js
javascript
1var module = ons.bootstrap(); 2var ncmb = new NCMB(appKey, clientKey); 3module.controller("loginController", function(userInfo,$scope) { 4 $scope.loginUserName = ""; 5 $scope.loginPassword = ""; 6 7 // ログイン 8 $scope.login = function(loginUserName,loginPassword){ 9 ncmb.User.login(loginUserName, loginPassword) 10 .then(function(user) { 11 userInfo.refresh(); 12 myNavigator.pushPage("tab.html"); 13 }) 14 .catch(function(user, error) { 15 ons.notification.alert({ 16 message: error.message, 17 title: "失敗した", 18 buttonLabel: "OK", 19 animation: "default" 20 }); 21 }); 22 23 24 }; 25 26 // ログイン済かどうかのチェック 27 if (userInfo.userName != null) { 28 var options = { 29 animation: 'lift', 30 onTransitionEnd: function() {} 31 }; 32 33 try { 34 var currentLoginUser = ncmb.User.getCurrentUser(); 35 if (currentLoginUser) { 36 //ログイン済みであればメニューの表示 37 myNavigator.pushPage("tab.html"); //ここ 38 39 } 40 } 41 catch (error) { 42 ncmb.User.logout(); 43 } 44 } 45});