2017-04-18 32 views
0

我使用了波浪衝擊.js,並且在完成播放後,我想將暫停按鈕改回播放按鈕,但直到我打開切換按鈕或執行一些任何操作。Ionic 2 on函數不會正確刷新ngModel

this.wavesurfer.on('finish', function() { 
    this.isPlaying = false; 
}.bind(this)); 

我有這個簡單的代碼,我用的console.log()所以我知道它已經被正確調用,並且結合也不錯。但是,只有在頁面上做了某些事情後,我纔看到更改。

我該怎麼辦? 任何幫助,將不勝感激。

+0

什麼是'isPlaying'?組件內的字段? – echonax

+0

這是一個簡單的布爾變量。 – Hexiler

+0

它在哪裏定義? – echonax

回答

1

這是後完成打我想改變暫停按鈕回到播放按鈕,但直到我打開一個跳轉或做一些事情沒有發生

我相信你在你的HTML中使用this.playing ..

您的wavesurfer.js正在改變Angular區域以外的值。

嘗試使用ngZone API:

import {NgZone} from '@angular/core'; 

constructor(private ngZone:NgZone){} 

//... 
this.wavesurfer.on('finish', function() { 
    this.ngZone.run(()=>{ 
    this.isPlaying = false; 
    }); 
}.bind(this)); 

NgZone API

+0

謝謝。這太棒了。 (但是你忘記了......「false」後面的右括號)}):) :)) – Hexiler

+0

謝謝.... :) –