Framework7 v4重新加载异步模板

时间:2019-03-19 21:35:58

标签: javascript html-framework-7

我正在开发一个内置在framework7中的应用程序。我有一个模板,可以从路由内的ajax调用接收信息。我已经测试了下面的代码,可以很好地工作。它从我的服务器获取信息并返回所需的数据。然后将我带到picks.html文件。问题是我有一个菜单,该菜单具有/ picks /的链接。如果有人在“选择”页面上并再次单击“选择”链接,则路由功能将从服务器中拉出,但不会更新模板,而保留旧数据。我正在寻找一种在每次调用模板时刷新模板的方法。

routes = [
  {
    path: '/picks/',
    async: function (routeTo, routeFrom, resolve, reject) {
      // App instance
      var app = this.app;

      // Show Preloader
      app.preloader.show();

      // Simulate Ajax Request
      setTimeout(function () {

        app.request.post( app.data.api.picks, {token:localStorage.getItem("token")}, 
            function (data){
                if(data.result==1){
                    if(drivers.length>0){
                        resolve( 
                            { componentUrl: './pages/picks.html' },
                            { 
                                context: { 
                                    picks: JSON.parse(data.picks),
                                    time: new Date().getTime()
                                } 
                            }
                        );                      
                    }else{ resolve( { url: './pages/crash.html' } ); }                  
                }else if(data.result==2){
                    app.dialog.create({
                        title: 'Invalid Login Details',
                        text: 'Sorry but you will need to login again before making your picks.',
                        buttons: [
                            {
                                text: 'Login',
                                onClick: function(){
                                    localStorage.removeItem('token');
                                    app.dialog.close();
                                    app.loginScreen.open('#login-screen');
                                }
                            }
                        ],
                        verticalButtons: true,
                    }).open();
                }else if(data.result==4){ resolve( { url: './pages/season-over.html' } ); }
                else{ resolve( { url: './pages/crash.html' } ); }
            },
            function (data) { resolve( { url: './pages/crash.html' } ); },
            'json'
        );              
        app.preloader.hide();
      }, 1000);
    },
  },
];

0 个答案:

没有答案