Sto tentando di aggiornare il valore dell'ambito sulla finestra padre da un popup figlio.Ma quando provo ad accedere all'ambito della finestra genitore, restituisce undefined. Poiché coinvolge due finestre, non potrei creare un violino per questo. Il codice di esempio è incollato di seguito.Accesso alla finestra principale della finestra genitore dalla finestra secondaria
Home (main.html)
<!doctype html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script>
<script>
var myApp = angular.module('myApp',[]);
function MyCtrl($scope) {
$scope.name = 'Superhero';
}
</script>
</head>
<body ng-app="myApp">
<div id="ctrl" ng-controller="MyCtrl">
Hello, {{name}}!
<input type="button" value="Open popup!!" onclick="window.open('child.html');"/>
</div>
</body>
</html>
finestra Bambino (child.html)
<!doctype html>
<html >
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script>
<script>
function change(){
var e = window.opener.document.getElementById('ctrl');
var ae = angular.element(e);
var s = ae.scope();
s.name="New Superhero";
s.$apply();
}
</script>
</head>
<body>
<input type="button" value="Update parent scope!" onclick="change();"/>
</body>
</html>
Qui ogni volta che provo ad accedere portata dall'elemento angolare, come illustrato sopra nel metodo di modifica, restituisce undefined [ae.scope()]. Ma quando lo stesso codice è stato spostato in una funzione nella finestra padre [unica differenza nel modo in cui l'elemento 'ctrl' è in accesso], ha funzionato bene e sono stato in grado di aggiorna la variabile scope. Qualcuno può far notare cosa sta veramente andando storto qui? Grazie
io non sono sicuro se questo funzionerà come due finestre sono coinvolti, come la finestra figlio non può avere l'accesso agli script \ funzioni caricati sul genitore. Perché non guardi le opzioni come Angularstrap, che hanno un popup del modello http://mgcrea.github.io/angular-strap/ – Chandermani
@Chandermani Grazie per il suggerimento. I requisiti insistono sull'utilizzo di un popup. Non posso andare con l'opzione finestra modale. Inoltre, la finestra secondaria sarà in grado di accedere a dom e script nella finestra principale. Quindi credo che qualcos'altro stia andando qui – Bibin