Marven
Marven

Reputation: 71

Framework7 starter page "pageInit" NOT WORKING

anyone using framework7 to create mobile website? I found it was great and tried to learn it by myself, now I meet this problem, after I create my App, I want to do something on the starter page initialization, here, my starter page is index.html, and I set data-page="index", now I write this below:

$$(document).on('pageInit', function (e) {
      var page = e.detail.page;
      // in my browser console, no "index page" logged
      if (page.name === 'index') {
       console.log("index page");
      });
     // but I changed to any other page other than index, it works
     // my browser logged "another page"
     if(page.name === 'login') {
       console.log('another page');
     }
 });

Anyone can help? Thank you so much.

Upvotes: 0

Views: 1640

Answers (3)

vinay samant
vinay samant

Reputation: 11

I am facing same issue and tried all solutions in various forums.. nothing actually worked. But after lot of RnD i stumbled upon following solution ...

var $$ = Dom7;
$$(document).on('page:init', function (e) {
    if(e.detail.page.name === "index"){
        //do whatever.. remember "page" is now e.detail.page..
                $$(e.detail.page.container).find('#latest').html("my html here..");
    }
});
    
var me = new Framework7({material: true});
var mainview = me.addView('.view-main', {});
.... and whatever else JS here..

this works perfectly.. surprisingly you can use "me" before initializing it..

Upvotes: 0

Mehdi
Mehdi

Reputation: 934

for using for first page u better use document ready event. and for reloading page event you better use Reinit event. if jquery has used.

   $(document).on('ready', function (e) {
          // ... mainView.activePage.name = "index"
   });

   $(document).on('pageReinit', function (e) {
          //... this event occur on reloading anypage.
    });

Upvotes: -1

paulitto
paulitto

Reputation: 4673

I have also encountered with the same problem before.

PageInit event doesn't work for initial page, only for pages that you navigate to, it will only work for index page if you navigate to some other page and then go back to index page.

So I see two options here:

  1. Just not use pageInit event for index page - make its initialization just once (just make sure you put this javascript after all its html is ready, or e.g. use jquery's on document ready event)
  2. Leave index page empty initially and load it dynamically via Framework7's mainView.loadContent method, then pageInit event would work for it (that was a good option for me as I had different index page each time, and I already loaded all other pages dynamically from underscore templates)

Upvotes: 2

Related Questions