繁体   English   中英

启用禁用列表中的按钮

[英]Enable disable a button in alist

我创建了一个媒体播放功能,可以在其中播放已创建的音频文件,我有一个列表,其中包含文件名和两个按钮(如果状态为ng),则仅显示一个按钮。名单。 在此列表中,当我单击播放按钮(现在停止按钮变为可见状态)时,我希望启用该项目按钮,而该列表中的其他按钮应被禁用。 有人可以帮我吗

 <ion-content padding class="has-header">
    <ion-list>
        <ion-grid>
            <ion-row *ngFor="let file of MyAudioFiles let i = index  ">
                <ion-col width-60 style="padding-top:  6px;">
                    {{file.audio.name}}
                </ion-col>
                <ion-col width-20  > 
                    <ion-icon style="padding-top: 9px;" *ngIf="!file.status" name="play" (click)="startPlayback(file.audio, i)"></ion-icon>
                    <ion-icon style="padding-top: 9px;" *ngIf="file.status" name="square" (click)="stopPlayback(file.audio, i)"></ion-icon>
                </ion-col>               
            </ion-row>
        </ion-grid>
    </ion-list>
</ion-content>

startPlayback(audio, i) {
        try {

            console.log("start playback file name and index", audio.name, i);
            this.MyAudioFiles[i].status = true;

            var pathalone = audio.nativeURL;
            this.file = new MediaPlugin(pathalone, (status) => {
                console.log("playback status", status);
                this.playbackStatus = status
                if (status == 2) {
                    console.log("MEDIA RUNING")
                }
                if (status == 4) {
                    console.log("MEDIA STOPPED")
                    this.MyAudioFiles[i].status = false;
                }
            });
            console.log("play back file getDuration", this.file.getDuration());
            this.file.play();
            console.log("playbackStatus", this.playbackStatus);
        }
        catch (e) {
            this.showAlert('Could not play recording.');
        }
    }

我建议您使用仅图标按钮而不是ion-icon因为后者没有disabled属性。

<button ion-button style="padding-top: 9px;" *ngIf="!file.status" (click)="startPlayback(file.audio, i)" clear icon-only [disabled]="isPlaying()">
  <ion-icon name="play"></ion-icon>
</button>

您可以定义isPlaying()以根据媒体是否正在播放文件来返回。

isPlaying(){
  return this.MyAudioFiles.filter(file=>file.status==true).length > 0;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM