javascriptrouteshtml-framework-7

How to navigate to a page in Framework7


I am just starting with Framework7 and I want to navigate to another page when a click a paragraph. I tried a few things and googled for the past hour but no luck.

Here is the code I have in my-app.js:

var $$ = Dom7;

var app = new Framework7({
    // App root element
    root: '#app',
    // App Name
    name: 'My App',
    // App id
    id: 'com.myapp.test',
    // Enable swipe panel
    panel: {
      swipe: 'left',
    },
    view : {
        stackPages: true
    },
    // Add default routes
    routes: [
      {
        name: 'about',
        path: '/about/',
        url: 'about.html',
      },
      {
        name: 'index',
        path: '/index/',
        url: 'index.html'
      },
      {
        name: 'preview',
        path: '/preview/',
        url: './preview.html'
      },
    ],
    // ... other parameters
  });

 var mainView = app.views.create('.view-main');
 $$('p').on('click', function(){
     mainView.router.navigate('/preview/');
 });

When I click a paragraph nothing happens and there are no errors when I run the inspector. What am I doing wrong? Thank you.


Solution

  • You can do that by using this:

    self.app.router.navigate('/preview/', {reloadCurrent: true});
    

    Also make sure that html layout like this:

    <div class="view">
        <!-- Initial Page, "data-name" contains page name -->
        <div data-name="preview" class="page">
            <!-- Scrollable page content -->
            <div class="page-content">
               preview page content
            </div>
        </div>
    </div>
    

    Update 1: In F7 ver 4 you can use this:

    app.views.main.router.navigate('/login/', {reloadCurrent: true});