当你下一页并再次回来时,Youtube播放器不显示:离子

时间:2018-04-11 16:03:04

标签: angular youtube-api ionic3

我正在使用https://github.com/morganster/ionic-youtube-ng2库来实现离子3中的youtube播放器。 当我们打开主页(我只在主页上使用播放器)时它工作正常,而不是使用navCtrl.push转到下一页。然后使用后退按钮返回主页。

但是当我使用navCtrl.setRoot进入下一页并从菜单(抽屉菜单)返回而不是主页没有YouTube播放器时,div当时是空的。

我在this.youtube.player.destroy();上收到错误 当我回到主页时,我将其更改为this.youtube.destroy();仍然无效。

我最后在https://github.com/morganster/ionic-youtube-ng2/blob/master/src/pages/home/home.ts添加了NavController模块的额外代码

gototTest(){
   this.navCtrl.setRoot(TestPage);
} 

home.html

<button (click)="gotoTest()">Go to Test Page</button>

在页面文件夹中创建了一个带有功能

的TestPage
 gototHome(){
   this.navCtrl.setRoot(HomePage);
} 

test.html

<button (click)="gotoHome()">Go to Home Page</button>

我将使用按钮点击测试页面,然后点击gotoHome()按钮返回主页。现在,youtube player div是空的。什么都没玩,没有youtube iframe。

1 个答案:

答案 0 :(得分:0)

该代码适用于单页应用程序。这是您可以做的。 (PS:播放器也在页面堆栈中运行,但不在setRoot之后运行)

  • 从app.components.ts中剪切代码 <tbody className="scrollContent"> { projects.map((project, i) => { return ( <tr key={i}> <td>{project.project_name}</td> <td>{project.description}</td> <td> <EditProjectModal project={project} /> </td> </tr> ); }) } </tbody> ... var tag,并将其粘贴到构造函数下方的yourPage.ts中,这是一个新函数firstScriptTag);

    ionViewWillEnter()

    还要注意ionViewWillEnter(){ let tag = document.createElement('script'); tag.src = "https://www.youtube.com/iframe_api"; let firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); this.ytPlayer.setupPlayer(); } 中的更改。 就是这样。

这里是explanation on another post