我正在为报表的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。
不知道是什么原因造成的
最佳答案
我不确定,但是我认为问题在于ReportView尚未在第二个视图上实例化(渲染)。您只是获得该视图的相对URL,而不呈现内容。
尝试:
使用render方法在ReportView中呈现内容。
返回此内容并使用它来打开对话框。
我想这就是问题所在。
希望能帮助到你