任何使用framework7创建移动网站的人?我发现它很棒并且试图自己学习它,现在我遇到了这个问题,在我创建我的应用程序后,我想在首页初始化上做一些事情,在这里,我的首页是索引.html,我设置data-page =“index”,现在我写下面这个:
$$(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');
}
});
任何人都可以提供帮助?非常感谢你。
答案 0 :(得分:2)
之前我也遇到过同样的问题。
PageInit事件不适用于初始页面,仅适用于您导航到的页面,如果您导航到其他页面然后返回索引页面,它将仅适用于索引页面。
所以我在这里看到两个选项:
pageInit
事件用于索引页面 - 只需初始化一次(只需确保在所有html准备就绪之后放置此javascript,或者例如在文档就绪事件中使用jquery)< / LI>
mainView.loadContent
方法动态加载它,然后pageInit
事件将适用于它(这对我来说是个不错的选择,因为我有不同的索引页面每次,我已经从下划线模板动态加载所有其他页面)答案 1 :(得分: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..
这很完美.. 令人惊讶的是,你可以在初始化之前使用“我”。
答案 2 :(得分:-1)
用于第一页,您最好使用文档就绪事件。并且对于重新加载页面事件,您最好使用Reinit事件。 如果jquery使用过。
newSTRef :: a -> ST s (STRef s a)
readSTRef :: STRef s a -> ST s a
writeSTRef :: STRef s a -> a -> ST s ()
...