Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从html iframe调用angularjs状态_Html_Angularjs_Iframe - Fatal编程技术网

从html iframe调用angularjs状态

从html iframe调用angularjs状态,html,angularjs,iframe,Html,Angularjs,Iframe,我有一个带有登录机制的angular应用程序。当$window.sessionStorage中存储有“身份验证令牌”时,用户已登录。我在页面上包含了纯HTML iframe,显示登录用户数据和“注销”链接。此链接指向控制器的角度状态。当我单击“注销”时,我可以看到应用程序主控制器中的侦听器被触发: $scope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams) {

我有一个带有登录机制的angular应用程序。当
$window.sessionStorage
中存储有“身份验证令牌”时,用户已登录。我在页面上包含了纯HTML iframe,显示登录用户数据和“注销”链接。此链接指向控制器的角度状态。当我单击“注销”时,我可以看到应用程序主控制器中的侦听器被触发:

$scope.$on('$stateChangeStart',
    function (event, toState, toParams, fromState, fromParams) {
        if (UserFactory.isLoggedIn()) {
            //do something
        } else {
            //do something else
        }
    });
我的问题是,该应用程序无法识别用户已登录,因此“正在执行其他操作”

my
UserFactory.isLoggedIn()
函数非常简单:

isLoggedIn: function () {
    return 'token' in $window.sessionStorage;
}
我的注销状态定义为:

.state('app.logout', {
    url: '/logout',
    templateUrl: 'auth/auth.login.tpl.html',
    controller: 'LogoutController',
})

它在angular应用程序中工作。如果我从iframe(非角度html)调用“注销”,我的应用程序中触发的第一件事是
$stateChangeStart
侦听器,它在
$window.sessionStorage
中找不到任何“令牌”。谁能告诉我为什么?如何才能使应用程序识别用户已登录?

根据“从同一窗口打开的弹出窗口可以看到会话存储,同一窗口中的iFrame也可以看到会话存储。”因此,这个问题可能与iframe
$窗口中serssionStorage的使用没有直接关系。iframe中的sessionStorage
不是问题。如果用户登录,angular应用程序会保存信息,而sessionStorage中看不到“令牌”的正是此应用程序
$stateChangeStart
侦听器。Iframe通过
@OrGuz指向angular应用程序:你给了我一个主意,解决了这个问题。我的iframe javascript中有
$.sessionStorage.removeAll()
。这清除了存储空间,这就是为什么我的angular应用程序在存储空间中找不到任何东西。祝你好运,我的朋友