|
发表于 2015-4-17 16:55:57
|
显示全部楼层
新版本已经改过,可下载最新版本,
如果是已建好的文件,在向导生成门户页js中
引入文件 var WindowContainer = require("$UI/system/components/justep/windowContainer/windowContainer");
将ModelLoad方法下的 pages.loadContent(mainPageId, this.getURL(mainPage));
改为this.loadPage(mainPageId, this.getURL(mainPage));
并添加loadPage方法和修改openPage方法,具体代码如下:
Model.prototype.loadPage = function(xid,url,fn){
var pages = this.comp('pages');
var content = pages.getContent(xid);
if(!content){
content = pages.add({xid: xid});
}
var parentNode = content.$domNode.get(0);
var compose = new WindowContainer({
parentNode: parentNode,
src: url,
onLoad: function(){
fn && fn();
content.on("onActive", function(){
if(compose.getInnerModel()){
compose.getInnerModel().fireEvent('onActive');
}
});
},
onLoadError: function(err){
fn && fn(err);
}
});
content.innerContainer = compose;
}
openPage: function(path, options,fn){
if(typeof options == 'function'){
fn = options;
options = {};
}
if(typeof path == 'object'){
path = path.url;
}
var me = this;
options = options || {};
var pages = this.comp('pages'),
url = this.getURL(path, options),
pid = path;
if(!pages.has(pid)){
this.loadPage(pid,url,function(err){
if (err){
setTimeout(function(){
//hcr 特殊点, 必须知道错误对话框的btn
$("#__justepErrorDialog__").find(".x-error-close").one("click", function(){
setTimeout(function(){
//以下逻辑应该和closePage类似, maduo支持closePage传pid后, 直接调用即可
var index = me.openeds.indexOf(pid);
if (index !== -1){
me.openeds.splice(index, 1);
}
if (pages.getContent(pid))
pages.getContent(pid).dispose();
});
});
});
}
});
function after() {
pages.to(pid);
me.openeds.push(pid);
me.current = justep.Util.clone(options);
me.current.path = path;
}
setTimeout(after, 200);
}else{
fn && fn();
}
}
|
|