index-oupt.html(主框架 doctorstation-outp-controller.js)等到加载完成患者列表的内容,然后加载就诊史的内容
<!-- 就诊史outp-visit-history -->
< section class ="tab-pane active visit-history-index" ng-show ="tabNavShow.visitHistory"
id ="clinicVisitHistory" ng-include src ="'templates/visitHistory/visit-history-page.html'" >
</ section >
<!-- 患者列表开始 -->
< section ng-show ="clinicTimeShow" class ="pat-list-index hc-sidebar hc-float-above border-radius outp-pat-list-index"
id ="patientList" ng-include src ="'templates/outp/outp-left.html'" >
</ section >
doctorstation-outp-controller.js
$scope.waitIframeLoad = function () {
console.log( "invoke waitIframeLoad!" );
// var iframes = ["visitHistoryFrame", "outpAdmissionFrame", "outpClinicAppointFrame"];
var iframes = ["visitHistoryFrame" ];
if ($scope.doctorstationParaValue.enableDaywardApply === '1' ) {
iframes.push( "outpOperationApplyFrame" );
}
var loaded = iframes.every( function (id) {
return document.getElementById(id).contentWindow.document.readyState === "complete" ;
});
if (loaded) {
console.log( "iframesLoaded!" );
$scope.waitIframeLoad = undefined;
$scope.$broadcast($scope.updatePatientEvent);
} else {
setTimeout( function () {
waitIframeLoad();
}, 1000 )
}
}
visit-history-page.html (visit-history-page-controller.js)
< div ng-controller ="VisitHistoryPageController" hr-self-height ="$(window).height() - 99" >
< iframe style ="width:100%;height:100%;"
id ="visitHistoryFrame"
ng-src ="{{visitHistoryView.url}}"
scrolling =yes
frameborder =0 marginheight =0 marginwidth =0 >
</ iframe >
</ div >
visit-history-page-controller.js
var VisitHistoryPageController = ["$scope", function ($scope) {
$scope.visitHistoryView = {
"url": Path.getUri("doctorstation/ index-visit-history.html ?" +
"&departmentCode=" + $scope.doctorInfo.departmentCode +
"&allowViewReportStatus=" + $scope.doctorstationParaValue.allowViewReportStatus +
"&fromPage=doctorStation" )
};
window.addEventListener('message', function (event) {
if (event.data.type === "apply-for-admission-order") {
hrDialog.dialog(hrDialog.typeEnum.WARN, {title: '提示!', message: "请开立院前医嘱!"})
.close(function(){
$scope.showAdmissionTabNav("admissionOrder");
})
}
});<!--接收iframe加载页面的消息-->
$scope.$on($scope.updatePatientEvent, function () {
setTimeout(function () {
document.getElementById("visitHistoryFrame").contentWindow.postMessage({
type: "update-patient-event",
body: {
patientId: $scope.patientInfo.patientId
}
}, "*");
}, 500 );
});
}];
index-visit-history.html(visit-history-app.js)
<! DOCTYPE HTML >
< html ng-app ="VisitHistoryApp" >
< head >
< meta charset ="utf-8" >
< title > 就诊史 </ title >
</ head >
< body >
< div ng-include src ="'templates/visitHistory/visit-history.html'" ></ div >
</ body >
</ html >
visit-history-app.js没有什么信息
visit-history.html (visit-history-controller.js)
<!-- 就诊史 --> < div class ="visit-history-index" hr-cloak ng-controller ='VisitHistoryController' > < div >
visit-history-controller.js
var VisitHistoryController = ["$scope" , function ($scope) {
function getQueryString(queryString, name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i" );
var r = queryString.substr(1 ).match(reg);
if (r != null ) {
return decodeURI(r[2 ])
}
return null ;
}
//获取放iframe窗口那一级的页面元素
var scope = parent.angular.element("#outpMrMain").scope();
window.parent.postMessage({
type: "apply-for-admission-order",
body:""
}, "*");<!--像父窗口发消息-->
() {
$scope.pageInfo.from = getQueryString($window.location.search, "fromPage" );//获取上面绿色传过来的值
window.addEventListener( 'message', function (event) {<-- iFrame之间通信 -->
console.log("---------从iframe传来数据---------------");
console.log(event.data.body);
if (event.data.type === "update-patient-event") {
initParam();
$scope.outpMrSearchCondition.patientId = event.data.body.patientId;
initVistitHistoryContr();
}
});
})();
}];
查看更多关于angular iFrame加载资源问题的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did222865