1
私はangularjsを持つ単一ページアプリケーションを構築する際に問題に直面しています。私のアプリはログインページを持っています。認証が成功すると、appは$ scopeからいくつかのデータが表示されるホームページにルーティングされます。ただし、ログイン後に表示されるデータはありません。
私は成功して自宅にルーティングする際に記号をlocation.pathを使用しています。参考までに、私は "$ scope.homePageDetails"をhome.htmlに印刷しようとしていますが、何も印刷されません。誰かが言うことができます、私は何をやっていると私はこの問題を解決することができますか?
index.htmlファイル:
<html>
<body>
<nav>
<ul>
<li ng-hide="isUserLoggedIn"><a href="#login"> <span class="glyphicon glyphicon-log-in"></span> Login</a></li>
</ul>
</nav>
<div ng-view></div>
</body>
</html>
login.htmlとファイル:
<div>
<form class="form-signin">
<input type="text" class="form-control" placeholder="Email" ng-model="userDetails.userName" required autofocus>
<input type="password" class="form-control" placeholder="Password" ng-model="userDetails.Password" required>
<button class="btn btn-lg btn-primary btn-block" type="submit" ng-click="signIn()">
Sign in</button>
</form>
home.html:
<p> {{homePageDetails}}</p>
角度モジュールとコントローラ:
app.controller('myCtrl', ['$scope','$http', '$location' function($scope,$uibModal,$http, $location, $window) {
$scope.signIn = function(){
$http({
url: "http://localhost:3050/postSignIn",
method: "POST",
headers: {'Content-Type': 'application/json; charset=utf-8'
},
data: $scope.userDetails
})
.then(function(response){
console.log('resp is',response);
$scope.isUserLoggedIn = true;
$location.path('/home');
$http({
url: "http://localhost:3050/getHomePageDetails",
method: "GET",
headers: {'Content-Type': 'application/json; charset=utf-8'
}
})
.then(function(response){
$scope.homePageDetails = response.data.slice(0);
}, function(response){
// failure callback
console.log('failure in getting homePageDetails',response);
});
},
function(response){
// failure callback
console.log('failure is',response);
});
}
}]);
モジュール:
var app = angular.module('myApp', ['ngRoute']);
ルータ:
app.config(function ($routeProvider, $locationProvider, $httpProvider) {
$routeProvider.when('/home',
{
templateUrl: 'home.html',
controller: 'myCtrl'
});
}
ログインページのコントローラは何を試すことができますか?あなたは完全なルータコードを提供することができます – Akashii
ホーム画面のスコープは、サインイン画面のスコープと異なる場合があります。 –
@Thanh:コントローラを更新しました。複数のコントローラはありません。私は1つのコントローラしか使用していません。すなわちmyCtrl。 – Bobby