Почему нельзя дважды вернуться на страницу назад к индексу? - PullRequest
0 голосов
/ 27 июня 2018

Я использую Cordova + Framework 7

  • У меня есть 3 страницы: index, page1, page2
  • Когда я возвращаюсь к индексу, как этот page2 -> page1 -> index, я не могу нажать кнопку go page1 в index.html. Я должен перезагрузить страницу индекса, кнопка go page1 так работает.

routes.js

{
    path: '/page1/',
    async: function (routeTo, routeFrom, resolve, reject) {
        axios.get('').then(response => {
            var data = response.data;
            resolve({
                componentUrl: './pages/page1.html'
            }, {
                context: {
                    data: data,
                }
            });
        })
    }
}, {
    path: '/page2/:id',
    async: function (routeTo, routeFrom, resolve, reject) {
        axios.get('' + id).then(function (response) {
            var data = response.data;
            resolve({
                componentUrl: './pages/page2.html'
            }, {
                context: {
                    data: data
                }
            });
        })

    }
}

Кнопка «Назад» на стр. 1, стр. 2

<a href="#" class="back link" data-force="true">
    <img src="img/icon-back.png" alt="">
</a>

Кнопка перехода на страницу 1 в index.html

.html

<a href="#" class="button button-raised button-fill" id="go-page1">go page1</a>

.js

$$('#go-page1').on('click', function () {
    app.views.main.router.navigate('/page1/');

}

Кнопка перехода на страницу2 на странице1

{{#each data}}
<div class="col">
    <div class="card demo-card-header-pic">
        <a href="/page2/{{id}}">{{name}}</a>
    </div>
</div>
{{/each}}

1 Ответ

0 голосов
/ 10 октября 2018

вы можете исправить это одним из следующих решений:

1)

$$('#go-page1').on('click', function () {
    app.views.main.router.navigate('/page1/', {reloadCurrent: true});

}

2) или в html-ссылке

<a class="back" data-ignore-cache="true" data-force="true">back</a>

3) игнорировать кеш / историю или обновлять предыдущую страницу с помощью reloadPrevious, как это:

mainView.router.back({url: 'index.html', force: true, ignoreCache: true,reload: true});
...