我有一个网页,其中包含一个名为“Start Portal”的按钮,以及在同一网页下方的iframe,其id为“MyFrame”。
使用jQuery AJAX获取我的基于angularjs的门户网站的URL,并设置我的iframe的src。下面是加载基于angularjs的门户网站的代码。 “portalURL”参数包含URL。
这段代码可以正常工作,我的AngularJS门户网站可以在iframe中正确打开。
但是,如果我再次点击“启动门户网站”按钮,同样的AJAX代码将被调用,并且我会再次获取AngularJS门户网站的URL并重新加载。这个过程可以正常工作,但有一个问题。
我在AngularJS的run()方法中编写了一些身份验证代码:
现在,我的问题是,只有当我第一次点击“启动门户”时,才会调用此
我尝试手动引导angular应用程序,但无法正常工作。
不知何故,每当iframe加载我的angularjs门户时,我都希望杀死或重新加载整个angularjs应用程序,并从头开始。
我不能对iframe代码进行任何修改,因为在生产中,那将是我的客户网站。我只需要向他们提供angularjs门户网址,他们将使用我使用的类似方法进行加载。
使用jQuery AJAX获取我的基于angularjs的门户网站的URL,并设置我的iframe的src。下面是加载基于angularjs的门户网站的代码。 “portalURL”参数包含URL。
$.ajax({
method: 'post',
crossDomain: true,
contentType: "application/json; charset=utf-8",
url: webmethodurl,
data: {},
dataType: "jsonp",
jsonp: "JSONCallback",
success: function(portalURL){
$('#MyFrame').attr('src',portalURL);
},
error: function(e){
console.log(e);
}
});
这段代码可以正常工作,我的AngularJS门户网站可以在iframe中正确打开。
但是,如果我再次点击“启动门户网站”按钮,同样的AJAX代码将被调用,并且我会再次获取AngularJS门户网站的URL并重新加载。这个过程可以正常工作,但有一个问题。
我在AngularJS的run()方法中编写了一些身份验证代码:
//Some initializing code before Angular invokes controllers
MyApp.run(['$rootScope', function($rootScope) {
ValidateSession(); //1. First validate the session
}]);
function ValidateSession(){
//this does some validation checks
}
现在,我的问题是,只有当我第一次点击“启动门户”时,才会调用此
run()
方法。在随后的点击中,它确实重新加载了来自服务器端的门户URL的iframe,但是angularjs的run()
方法不再被调用。我尝试手动引导angular应用程序,但无法正常工作。
不知何故,每当iframe加载我的angularjs门户时,我都希望杀死或重新加载整个angularjs应用程序,并从头开始。
我不能对iframe代码进行任何修改,因为在生产中,那将是我的客户网站。我只需要向他们提供angularjs门户网址,他们将使用我使用的类似方法进行加载。