小编Bib*_*bin的帖子

从子窗口访问父窗口角度范围

我正在尝试从子弹出窗口更新父窗口的范围值.但是每当我尝试访问父窗口范围时,它都会返回undefined.因为它涉及两个窗口,我无法为此创建一个小提琴.代码示例粘贴在下面.

主页面(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>
Run Code Online (Sandbox Code Playgroud)

子窗口(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>
Run Code Online (Sandbox Code Playgroud)

这里每当我尝试从angular元素访问scope时,如上面的change方法所示,它返回undefined [ae.scope()].但是当相同的代码移动到父窗口中的函数时[只有'ctrl'的差异'正在访问元素],它工作正常,我能够更新范围变量.任何人都可以指出这里究竟出了什么问题吗?谢谢

javascript angularjs angularjs-scope

9
推荐指数
2
解决办法
2万
查看次数

Ajax文件下载问题

我正在我的应用程序中下载动态文件,使用iframe模拟ajax.什么我做的是,下载请求时,我将创建一个动态的无形的iframe,并设置我的iframe和下载url.I我能够成功下载该文件的src,但要求是显示下载一旦指标下载开始,且应尽快完成在下载对话框出现up.I的通话iframe的创建完成后,显示下载的指标,这是成功的工作,并提供了另一种方法在iframe的"的onload",期待当下载对话框出现时,它将被调用.但不幸的是,这不起作用,因此即使在下载完成后,我的进度指示器仍然存在.我无法删除它.然后我开始意识到,由于响应的内容类型不是html,它将由一个单独的进程提供,这导致下载对话框,因此我的onload方法永远不会被调用.请让我知道解决方案.

html ajax iframe download

6
推荐指数
2
解决办法
2万
查看次数

标签 统计

ajax ×1

angularjs ×1

angularjs-scope ×1

download ×1

html ×1

iframe ×1

javascript ×1