[英]Angularjs two-way binding in index.html
我是Angularjs的新手。 我正在嘗試用登錄頁面構建一個簡單的系統,成功登錄后它將重定向到另一個頁面。
我正在嘗試使用ng-view顯示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並將其設置為“ Login”時,它正在工作,但是當我將其設置為“ Main”時,頁面不會更改。
不勝感激是否有人可以幫助我,謝謝:D
問題是您的登錄功能中的$ location.path('/')調用。 這將導航到/index.html並重新初始化LoginController。 因此,vm.page變量將重置為“登錄”。
刪除location.path()或創建一個包含頁面/登錄狀態的服務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.