/ / Jak mogę zdobyć wartość jednego kontraściciela $ zasięg na innej stronie - angularjs

W jaki sposób mogę uzyskać wartość jednego kontrahenta $ zasięg na innej stronie - angularjs

Tutaj piszę prosty kątowy Roution Like

 <li><a ui-sref="Login()">Login</a></li>
<li><a ui-sref="Logout()" ng-show="!usersessionData">Logout</a></li>

MyApp.js

var app = angular.module("MyApp", ["ui.router"])

app.config(function ($stateProvider, $urlRouterProvider, $httpProvider) {
$stateProvider
.state("Login", {
templateUrl: "/Kpmg/Homepages/LoginPages/Login.html",
controller: "LoginCtrls"
})

Kiedy klikam Zaloguj się na stronie logowania Przekieruj mnie 2, gdy pomyślnie przekażę swoje referencje Logout powinien być widoczny.

LoginCtrl.js

$scope.usersessionData = false;
$scope.SaveData = function (user) {
var obj = { "UserName": user.Email, "password": user.psw, "grant_type": "password" }
Login_Fac.GetLogin(obj).then(function (response) {
User_Session.SetCurrentUser(response.data);
$scope.usersessionData = true;

Muszę kontrolować <li><a ui-sref="Logout()" ng-show="!usersessionData">Logout</a></li> moje wylogowanie za pomocą usersessionData

Odpowiedzi:

1 dla odpowiedzi № 1

próbować

$rootScope.usersessionData = false;
$scope.SaveData = function (user) {
var obj = { "UserName": user.Email, "password": user.psw, "grant_type": "password" }
Login_Fac.GetLogin(obj).then(function (response) {
User_Session.SetCurrentUser(response.data);
$rootScope.usersessionData = true;
}
}

iw twoim kontrolerze, w którym zdefiniowana jest funkcja saveData, wstrzyknij $ rootScope, na przykład:

myApp.controller("LoginCtrls", function($scope, $rootScope) {
$rootScope.usersessionData = false;
$scope.saveData= ...;
});