ログインページにナビゲーションが表示されています。ログインページのナビゲーションを非表示にします。ユーザーのログイン後、フラグ値を1に設定してダッシュボードページにリダイレクトするようにします。ダッシュボードページではナビゲーションが表示されます。しかし、問題は、フラグ値をナビゲーションメニュー表示されなくなりました。フラグの値は効果がないようです。angularjsページでのナビゲーションの非表示/表示
私の目標はログインページからナビゲーションメニューを隠すことですが、これを他のすべてのページに表示することです。問題を解決する方法は?正しい方向へ進むか、これを達成するためのよりよい方法がありますか?
のIndex.htm
<body ng-app="myApp">
<div ng-controller="logCtrl">
<div ng-if="flag==1">
<p><a href="#/">Main</a></p>
<a href="#login">Login</a>
<a href="#dashboard">dashborad</a>
</div>
</div>
<div ng-view></div>
<script>
var app = angular.module("myApp", ["ngRoute"]);
app.config(function($routeProvider) {
$routeProvider
.when("/", {
templateUrl : "login.htm"
})
.when("/login", {
templateUrl : "login.htm",
controller : "logCtrl"
})
.when("/dashborad", {
templateUrl : "dashborad.htm",
controller : "dashboradCtrl"
});
});
app.controller('logCtrl', function ($scope,$location,$http) {
$scope.login = function() {
var request = $http({
method: "post",
url: "ajax/login.php",
data: {
username: $scope.username,
password: $scope.password
},
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
});
request.success(function (data) {
if(data == "1") {
$scope.flag=1;
$location.path('/dashboard');
} else {
$scope.flag=0;
}
});
}
});
</script>
</body>
login.htm
<div class="panel panel-body login-form">
<div class="form-group has-feedback has-feedback-left">
<input type="text" class="form-control" ng-model="username" placeholder="Username">
</div>
<div class="form-control-feedback">
<i class="icon-user text-muted"></i>
</div>
</div>
<div class="form-group has-feedback has-feedback-left">
<input type="password" class="form-control" ng-model="password" placeholder="Password">
<div class="form-control-feedback">
<i class="icon-lock2 text-muted"></i>
</div>
</div>
<span>{{responseMessage }}{{flag}}</span>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-block" ng-click="login()">Sign in</button>
</div>
</div>
'$ scope.flag = 1;'が実行されていますか?ビューに '{{flag}}'を追加し、値 '1'が正しく設定されているかどうかを確認してください。 '$ scope.login()'はどこで呼びますか? – lin
数字やオブジェクトではなく文字列を受け取っていることを確認するには、データ=== "1"を使用します。 –
@ andrey.shedkoこれは単に間違っています。明示的な型の比較はここでは必要ありません。彼はまた、文字列の値を設定していない、彼は番号を設定します。 – lin