我的主頁面中只有登錄用戶需要導航。現在我想隱藏登錄頁面的導航。所以最初我使用了一個未定義的標誌變量將導航隱藏在登錄頁面中。然後在用戶登錄後,我將標誌值設置爲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