使用AngularJS中的窗口来访问iframe内容

时间:2013-08-02 06:41:49

标签: javascript angularjs

我有一个返回一些json字符串的iframe。我必须使用那个json构建一个表。

<iframe id="idHiddenFrame" name="HiddenFrame" src="/PTO/PlattsIncident.nsf/frmBlank?ReadForm" width="0px" height="0px" onload="addAttachment()"></iframe>

以下是使用angular js

的javascript代码
$window.addAttachment=function(){
        if($.parseJSON(frames["HiddenFrame"].document.getElementsByTagName("body")[0].innerHTML)!=null){
            $scope.attachments.push($.parseJSON(frames["HiddenFrame"].document.getElementsByTagName("body")[0].innerHTML));
            console.log($scope.attachments);
        }
    }

console.log正在打印正确的值,如下所示

0: Object
attachName: "Root Cause Analysis - Stringer SSF - 02072013.doc"
docID: "290005B6A4CFB9FD85257BBB002433A8"

但是使用ng-repeat的代码不能正常工作

<ul class="list-group">
    <li class="list-group-item" ng-repeat="attachment in attachments">{{attachment.attachName}}</li>
</ul>

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

您可以尝试下面的代码并使用$ scope。$ apply():

$window.addAttachment=function(){
        if($.parseJSON(frames["HiddenFrame"].document.getElementsByTagName("body")[0].innerHTML)!=null){
            $scope.attachments.push($.parseJSON(frames["HiddenFrame"].document.getElementsByTagName("body")[0].innerHTML));
            console.log($scope.attachments);
           $scope.$apply();
        }
    }