2015-04-22 12 views
5

$ aralığı üzerinde temizlenir bir $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 

Çıktı

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 

Gördüğünüz gibi İlk console.log $scope.childWindow, tam olarak tanımlanmış bir pencere nesnesi çıkıyor. Diğerleri, $interval'un içinde yalnızca {} çıktı. childWindow'u $scope nesnesine eklememeyi denedim ve self'a bağlamayı denedim. Aynı zamanda this örneğini de denedim ve aynı davranışı yaşadım. Bunun neden olduğu hakkında bir fikri olan var mı? Çok teşekkürler.

JSFiddle demo: http://jsfiddle.net/U3pVM/15124/

+0

Aynı sonucu elde edemiyorum. Jsfiddle/codepen/plnkr hakkında bir örnek var mı? – Trevor

+0

Yaptığım bir jsfiddle: http://jsfiddle.net/U3pVM/15124/ –

cevap

0

bu o gidiyor neden açıklayabilir güvenlik nedeniyle tarayıcısında çalışmaz gerektiğini öğrendik "üzerine yazılır." Bunun kullanım durumu aslında Blackberry10 Cordova uygulamasındaydı. Bunu düzeltmek için, şöyle config.xml web güvenliğini devre dışı bırakmalısınız:

<access origin="*"/> 
<preference name="websecurity" value="disable" /> 

Tabii * tüm alanları listesine alacağız. Güvenliği biraz sıkıştırmak için, beyaz listeye eklemek istediğiniz alanları ekleyin.

1

bir tarayıcıda kodunuzu çalıştı ve $ aralığı işlevi içinde bir hata ayıklama noktası ayarlarken boş nesne konsolunda açmış ancak sağdaki izle müfettiş olduğunu göstermektedir oluyor $ kapsamı .childWindow boş değil. Bu yüzden $ scope.childWindow'u kullanabileceksiniz.

enter image description here

+0

Ben de bunu incelemeyi denedim ve benzer bir sonuç buldum. Son hedefim 'childWindow'un yerini $ scope.childWindow.window.location.href 'kullanarak ele geçirmektir, ancak bu gerçekleşmiyor gibi görünmektedir. Konum tanımlandı, ancak özelliklerinin ne olduğunu anlayamıyorum. [Bunlar] (http://www.w3schools.com/jsref/obj_location.asp) görünüşte özelliklerdir, ancak bunlar da mevcut değildir. Acayip şeyler. –

İlgili konular