我是Angularjs的新手。我试图建立一个简单的系统与登录页面,它将重定向到另一个页面后,成功登录。
我正在尝试用ng- index.html显示所有的页面(包括登录页面)。我尝试使用ng-if来决定何时在页面顶部显示导航栏。
vm.page的值在登录后不会改变
index.html
<html ng-app="myApp">
<head>
<title></title>
<link href="css/bootstrap.min.css" rel="stylesheet"/>
<link href="css/custom.css" rel="stylesheet"/>
<script src="jquery/jquery-3.3.1.min.js"></script>
<script src="node_module/angular/angular.js"></script>
<script src="node_module/angular-route/angular-route.js"></script>
<script src="app.js"></script>
<script src="controllers/login-controller.js"></script>
</head>
<body>
<div ng-controller="LoginController as lg" >
<div ng-if="lg.page != 'Login'" ng-include="'view/navigation-top.html'"></div>
</div>
<div ng-view></div>
</body>
login-controller.js
angular.module('myApp').controller("LoginController", LoginController);
function LoginController($http, $location, $scope) {
var vm = this;
vm.page = "Login";
vm.login = function(){
vm.page = "Main";
$location.path('/')
}
}
当vm.page设置为initiate并设置为"Login“时,它可以工作,但当我将其设置为"Main”时,页面不会发生变化。
如果有人能帮我,谢谢:D
发布于 2018-07-27 06:12:48
问题出在登录函数中的$location.path('/')调用。这将导航到/index.html并重新初始化LoginController。因此,vm.page变量被重置为“Login”。
删除location.path()或创建一个保留页面/登录状态的服务。
https://stackoverflow.com/questions/51522814
复制相似问题