我試圖實現一個登錄功能,將有效用戶重定向到以其名稱歡迎他們的個性化HTML視圖。在第二個視圖中使用相同的角度控制器無法識別的作用域變量
我的第一個視圖是一個登錄視圖。當用戶點擊標記爲「登錄」的按鈕ng-click
應該打電話給我的控制器的$scope.login
這應該驗證用戶,設置$scope.needsLoggingIn
變量,並重定向到第二個視圖(顯示值$scope.needsLoggingIn
的歡迎頁面)。
我的問題是,當我嘗試在$scope.login
函數中設置它時,第二個視圖(使用相同的角度控制器和模塊)不顯示$scope.needsLoggingIn
變量。這隻能說明,當我硬編碼值這樣的控制器,範圍功能外$scope.needsLoggingIn
:
$scope.needsLoggingIn = "Betty";
這是在我的控制器的$scope.login
功能,試圖設置在$scope.needsLogging
,並在被接受第一種觀點,但不被第二視圖接受:
$scope.login = function (username, password) {
$http({
method: 'GET',
url: ('/login/' + username + '/' + password)
}).then(function successCallback(response) {
if (JSON.stringify(response.data) === '[]')
{
$scope.needsPasswordMessage = true;
if ($scope.needsPasswordMessage)
$scope.needsPasswordMessage = false;
console.log("No match");
} else {
$scope.needsLoggingIn = username;
$scope.issuccessMessage = true;
if ($scope.isfailureMessage)
$scope.isfailureMessage = false;
$window.location.href = '../indextest.html';
return response;
}
}, function errorCallback(response) {
});
};
沒有人有任何建議,我怎麼可以讓我$scope.needsLoggingIn
雙方HTML視圖的認可,沒有硬編碼到控制器?我真的希望能夠讓我的$scope.login
函數設置變量值,並讓它可以被使用這個特定控制器的所有視圖識別。
把它放在$ rootScope中,所有的作用域都繼承它。其他東西...我不認爲用** GET **方法登錄請求是一個好主意'url:('/ login /'+ username +'/'+ password)' – codtex
謝謝!很抱歉,如果這是一個愚蠢的問題,但所有視圖都有自己的範圍,即使他們使用相同的控制器? – ChristinaLindsay
閱讀[** this **](https://docs.angularjs.org/guide/scope)有關範圍和[** this **](https://docs.angularjs.org/api/ ng/service/$ rootScope)關於$ rootScope。基本上,作用域是根據控制器實例或指令或其他地方創建的,但是'$ scope'與控制器的關係比查看 – codtex