自Angular 2起,我对ng-gapi有问题。我需要显示Google“托管配置iframe”,并按照Google developper doc的步骤操作它在angularJS上运行,但是当我尝试时Angular 2+则没有。
this.gapiService.onLoad().subscribe((result:any)=> {
gapi.load("gapi.iframes", function(){
var iframeContainer = document.getElementById('iframecontainer');
var context = gapi.iframes.getContext();
var options = {
'url': this.url,
'where': iframeContainer,
'attributes': {
style: 'height:1200px',
scrolling: 'yes'
}
}
var iframe = context.openChild(options);
iframe.register('onconfigupdated', function(o) {
console.log(o);
this.data.mcmId = o.mcmId;
this.dialogRef.close(this.data);
} , function(data) {
return true;
});
iframe.register('onconfigdeleted', function(o) {
console.log(o);
this.data.mcmId = null;
this.dialogRef.close(this.data);
} , function(data) {
return true;
});
});
});
问题在于我认为GAPI中不存在iframe,我需要使用Gapi渲染iframe以捕获“ onconfigupdated”和“ onconfigdeleted”事件。
答案 0 :(得分:1)
因此,如果您不使用gapi JS库,那么期望您不会从iframe接收事件,您需要使用gapi JS库才能接收事件。
如果ng-gapi包装器不支持iframe,则可以扩展它以支持iframe或专门为您的用例创建自己的自定义包装器。