Angular 单击按钮重新加载页面

Angular 单击按钮重新加载页面,angular,ionic2,Angular,Ionic2,有没有办法在点击按钮时重新加载页面 <button ion-button (click)="reload()"></button> <ion-row *ngFor="let file of MyAudioFiles let i = index ">{{file.name}}</ion-row> MyAudioFiles: any[] = []; reload(){ // what should I write to reload the

有没有办法在点击按钮时重新加载页面

<button ion-button (click)="reload()"></button>
 <ion-row *ngFor="let file of MyAudioFiles let i = index  ">{{file.name}}</ion-row>

MyAudioFiles: any[] = [];

reload(){
  // what should I write to reload the current page on button click in ionic2 
}

  ListAudioFiles() {
        console.log("list obj", obj);
        File.listDir(cordova.file.externalRootDirectory, 'Vanan/Audios').then(
            (allFiles) => {
                // do something

                console.log("we have audio files", allFiles);
                console.log("we have audio files", allFiles.length);
                for (var i = 0; i < allFiles.length; i++) {
                    this.MyAudioFiles.push({
                        audio: allFiles[i],
                        status: false,

                    });
                    console.log(this.MyAudioFiles);
                }

{{file.name}
MyAudioFiles:any[]=[];
重新加载(){
//要在ionic2中的按钮单击上重新加载当前页面,我应该写什么
}
ListAudioFiles(){
console.log(“列出对象”,obj);
File.listDir(cordova.File.externalRootDirectory,'Vanan/Audios')。然后(
(所有文件)=>{
//做点什么
log(“我们有音频文件”,所有文件);
log(“我们有音频文件”,allFiles.length);
对于(var i=0;i

假设我有一个列表,我删除了该列表中的一个项目。删除操作成功,但在UI中,项目计数没有减少。如果我向后移动一个页面,然后再次返回列表页面,那么我可以看到列表中的更改。

您可以通过观察值以asnycron的方式获取数据。这样,您就不需要刷新应用程序,只需输入将新值放入可观察流中,它将自动更改。在计数器上放置一个良好的更改效果样式,以便用户可以看到计数器已更改。

由于您只想更新阵列
MyAudioFiles
,因此无需刷新整个组件,只需在删除后更新列表即可

为此,进行一些更改,不要将数组声明为
any
。创建一个界面,您可以将响应转换到该界面,并使用
map
而不是迭代响应

因此,接口可以是:

导出接口音频文件{
音频:字符串;
状态:布尔型;
}
在检索此数据的位置,请使用地图:

listDir(…){
.....
.toPromise()
.then(res=>res.json().map((x:any)=>{audio:x,status:false})
}
然后在组件中,声明
MyAudioFiles
类型为
AudioFile[]

MyAudioFiles:AudioFile[]=[];
以及您检索音频文件的方法:

ListAudioFiles(){
File.listDir(cordova.File.externalRootDirectory,'Vanan/Audios')
。然后(数据=>{
this.MyAudioFiles=数据;
});
}
现在,当您删除某些内容时,只需再次调用
ListAudioFiles
,它会更新该列表,如下所示:

delete(){
文件。删除(…)
。然后(res=>{
控制台日志(res);
this.ListAudioFiles();//添加这个!
});
}

希望这有帮助!:)

也许可以尝试
window.location.reload()
?在数据中重新加载?您只需调用在
ngOnInit
ionviewdiload
中调用的任何函数即可。您第一次是如何加载列表的?您可以输入该代码吗?我猜您想在删除其中一个项目后重新加载数据,请在删除事件时再次尝试调用服务刷新数据。请在你的问题中粘贴所有相关代码。例如,计数显示在哪里?typescript中加载的数据在哪里?删除在哪里?有人能给出一些示例吗