framework7页面Init事件未触发

时间:2017-08-02 21:20:03

标签: javascript cordova phonegap html-framework-7

我正在尝试使用framework7并且无法触发页面init事件。我使用的代码非常简单,我非常仔细地遵循the documentation。无论我做什么,它都不会触发(没有任何记录到控制台,没有错误)。

我创建了一个pen here showing the problem

我也尝试了回调var myApp = new Framework7({}); var $ = Dom7; var mainView = myApp.addView('.view-main', { dynamicNavbar: true }); $(document).on('page:init', function (e) { alert("processing page init"); }); 。纳达。

非常感谢任何帮助。

JS代码

<div class="views">
  <div class="view view-main navbar-through toolbar-through">
    <div class="navbar">
      <div class="navbar-inner">
        <div class="center">Framework7</div>        
      </div>
    </div>
    <div class="toolbar">
      <div class="toolbar-inner">
        <a href="#" class="link">Left</a>
        <a href="#" class="link">Right</a>
      </div>
    </div>
    <div class="pages">
      <div class="page" data-page="home">
        <div class="page-content">
          <div class="content-block">
            <p>Hi there!</p>            
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

HTML

for(int i = 0;i < 20;i++){
            random = new Random();
            chooseQuestion();
}
Intent i =  new Intent(PlayGame.this, Gamble.class);
startActivity(i);

4 个答案:

答案 0 :(得分:4)

@SuperDuperApps,我设法运行代码。非常像Djiggy建议如果你延迟初始化它对我有用(下图)。但是如果你不想在第一页和后续页面上调用它,那么代码你就可以了。只需尝试添加类似于文档中的链接(至about.html)并且它可以正常工作

var myApp = new Framework7({
    init: false
});
var $ = Dom7;
var mainView = myApp.addView('.view-main', {
    dynamicNavbar: true
});
$(document).on('page:init', function (e) {
    alert("processing page init");
});
myApp.init()

注意:没有调用PageInit。

答案 1 :(得分:2)

它可以通过init app manually来解决(有时当内容在第一个文件中加载时不会触发事件)

或尝试触发主页回调(第三个链接点)

答案 2 :(得分:1)

下一页有详细信息。

https://framework7.io/docs/page.html#page-events

我这样使用它:在 app.js

var app = new Framework7({
    id: 'io.framework7.testapp',
    root: '#app',
    ...
    on: {
        pageInit: function (e, page) {
            console.log('page init -> route.name=' + e.route.name);

            if(e.route.name === "searchPage") {
                app.methods.searchPageInitMethod(e);
            }
        },
    },
    methods: {
        searchPageInitMethod: function (e) {
            console.log("Page Route Params:" + app.views.main.router.currentRoute.params)
        },
    },
    ...
}

我的路线表( routes.js )如下:

var routes = [
    ...
    {
        name: "searchPage",
        path: '/search/:keyword/',
        url: './pages/page-search.html',
    },
    ...
];

答案 3 :(得分:0)

从版本3开始,这已发生更改。现在,doing the exact same thing可以通过执行以下操作来完成:

var myApp = new Framework7({
    ...
    init: false
});

myApp.on('init', function(e) {
    alert('app init event fired');
});

myApp.init();