I'm experiencing rather weird behavior when trying to log a window object defined by $window.open()
in AngularJS within an $interval
self = this
$scope.childWindow = $window.open(authService.buildAuthorizeUrl(), '_blank')
console.log $scope.childWindow
var1 = "I may not work"
self.var2 = 'I should work'
privateData.authInterval = $interval ->
console.log $scope.childWindow
console.log var1
console.log self.var2
,
1000
Output
Window {document: document, window: Window, frameElement: null, clientInformation: Navigator, onhashchange: null…}
Window {}
I may not work
I should work
Window {}
I may not work
I should work
As you can see, the first console.log $scope.childWindow
is outputting a fully defined window object. All others, inside the $interval
, are outputting only {}
. I've tried not attaching childWindow
to the $scope
object, and I've tried attaching it to self
. I've also tried following this example too and experienced the same behavior. Anyone have any idea why this is happening? Thanks much.
JSFiddle demo: http://jsfiddle.net/U3pVM/15124/
I tried your code in a browser and while setting a debug point inside the $interval function an empty object is getting logged in the console but the watch inspector on the right shows that $scope.childWindow is not empty. So you might just be able to use $scope.childWindow.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With