加载骨干js在jquery ui对话框中查看iframe

时间:2014-07-27 08:45:29

标签: javascript jquery jquery-ui backbone.js iframe

我正在为报告的iframe创建一个视图。

<div id="aDialog"></div>

这是 ReportView

define(["jquery" ,
    "underscore" ,
    "backbone",
],function($, _, Backbone){
  var ReportView = Backbone.View.extend({
     el : "#agingFrame",
     initialize: function() {
         this.$el.html('<iframe src="http://ipadressofreportserver/jasper/blahblah"></iframe>');
     },
     render: function(){
     }
   });
   return ReportView;
});

然后我有另一个视图可以让用户打印上面的iframe,这里是主视图动作:

 'printingReportIcon' : function(){
    var page = "http://localhost/Source/#ReportView";
    var $dialog = $('#aDialog')
            .load(page)
            .dialog({
                autoOpen: false,
                modal: true,
                height: 625,
                width: 500,
                title: "Some title"
            });
    $dialog.dialog('open');

问题

打开对话框,其中包含 ReportView 中的所有源代码,但没有iframe。

知道是什么导致了这个

1 个答案:

答案 0 :(得分:0)

我不确定,但我认为问题是ReportView没有在第二个视图上实例化(renderized)。您只是获取该视图的相对URL,但不呈现内容。

尝试:

  • 使用render方法在ReportView中呈现内容。
  • 返回此内容并使用它打开对话框。

我想这就是问题所在。

希望有所帮助