2014-04-07 21 views
0

任何人使用framework7创建移动网站?我发现它很棒,并试图自己学习,现在我遇到了这个问题,在创建我的应用程序之后,我想在初始页面初始化上做些事情,在这里,我的初始页面是index.html,而我设置data-page =“index”,现在我写下如下:Framework7初学者页面“pageInit”NOT WORKING

$$(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'); 
    } 
}); 

任何人都可以帮忙吗?非常感谢。

回答

2

我以前也遇到同样的问题。

PageInit事件不适用于初始页面,仅适用于您导航到的页面,如果您导航到某个其他页面然后返回到索引页面,它将仅适用于索引页面。

所以,在这里我看到两个选项:

  1. 只是没有使用pageInit事件索引页 - 使其初始化只有一次(只要确保你把这个JavaScript后的所有HTML已经准备好,或者例如使用jQuery的在文档准备好的事件)
  2. 最初留空索引页,并通过Framework7的mainView.loadContent方法动态加载它,然后pageInit事件将为它工作(这是一个很好的选择,因为我有不同的索引页每次,我已经加载所有其他页面都从下划线模板动态显示)
-1

用于第一页您最好使用文档准备好事件。并且为了重新加载页面事件,最好使用Reinit事件。如果jquery使用了 。

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

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

我面临同样的问题,并尝试所有解决方案在各种论坛..没有实际工作。但是很多RND后,我偶然发现了以下解决方案......

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..

这工作完全.. 令人惊讶的,你可以在初始化之前使用“我” ..