[英]Angular - Update parent $scope from child window
這是我要解決的問題。
我有一個window.open
函數打開一個小窗口,供用戶使用他們選擇的社交網絡登錄/注冊。 用戶登錄后,我希望關閉小窗口,並且無需刷新頁面即可更新原始父窗口的$scope
。
我的整個目標是不打斷用戶對網站的體驗。 該站點是一個音樂站點,因此如果用戶正在聽一首歌並且重新加載頁面,則他們將失去在站點中的位置並最終感到不滿意。
我認為就這些。
app.controller('MainCtrl', [
$scope.loginTrigger = function() {
window.open("http://www.url.com/login", "_blank", "toolbar=yes, scrollbars=yes, resizable=no, top=0, left=100, width=1000, height=600");
}
if ($location.hash()) {
$http({
method: 'POST',
url: '/users/oauth_complete/',
data: data,
}).success(function(data){
if(!data.success){
$window.location.href = '/usersetup';
}else {
$scope.LoggedInUser = data;
storage.set('LoggedInUser', data);
//Here is my current code: Small window closes and the parent page reloads but I don't want to use refresh as it will interrupt the user experience.
window.close();
window.opener.location.reload();
}
},"JSON");
};
}]);
您可以使用$ emit和$ on在類之間“交談”
在您的登錄控制器中,您將使用$ emit。
$scope.$emit('eventName', myData);
然后在另一個控制器中,您將使用$ on函數進行監聽:
$scope.$on('eventName', function(event, data) { console.log(data); });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.