【问题标题】:Onsen uI:Controll android backbutton routes:Onsen uI:控制android后退按钮路线:
【发布时间】:2015-11-04 04:23:08
【问题描述】:

我正在使用 Onsenui 在科尔多瓦开发一个 android 应用程序,我想在单击设备后退按钮时导航到上一页 我正在使用this 问题的答案来解决问题

这是我的代码

document.addEventListener("backbutton",onBackButtonPressed, false);
    function onBackButtonPressed(){
            alert('backbutton');
            var element = document.querySelector( ".navigator-container");
            var scope = angular.element( element ).scope();
            scope.popPage();
    }

我会得到以下错误

"Uncaught TypeError: Cannot read property 'popPage' of undefined"

【问题讨论】:

    标签: javascript android angularjs cordova onsen-ui


    【解决方案1】:

    可能.navigator-container 已被弃用,这就是为什么我建议您使用ons-navigator 作为document.querySelector() 的参数来获取导航器。

    这里是固定代码:

    document.addEventListener("backbutton",onBackButtonPressed, false);
        function onBackButtonPressed(){
                alert('backbutton');
                var element = document.querySelector("ons-navigator");
                element.popPage();
    }
    

    编辑

    假设您使用的是旧版本的 Onsen UI,例如 1.3.4,并且假设您的导航器具有 var='myNavigator' 属性,您可以使用以下代码:

    document.addEventListener("backbutton",onBackButtonPressed, false);
        function onBackButtonPressed(){
                alert('backbutton');
                var element = document.querySelector("ons-navigator");
                var scope = angular.element(element).scope();
                scope.myNavigator.popPage();
    }
    

    【讨论】:

    • 我会得到另一个错误元素。 element.popPage is not a function
    • 您使用的是哪个版本的 Onsen UI?使用 Onsen 1.3.11 可以正常工作。如果您使用旧版本,请尝试在element.popPage()之前执行ons.compile(element);
    • 返回按钮仅在主页上有效,当点击滑动菜单项应用退出时
    • 我会收到以下错误"TypeError: Cannot read property 'insertBefore' of null`“未捕获的错误:无法触发“pageinit”事件。初始化后将“ons-page”元素附加到文档中`
    • 我的温泉ui版本是v1.3.4
    猜你喜欢
    • 2017-01-26
    • 1970-01-01
    • 2015-07-24
    • 2010-11-18
    • 2010-11-30
    • 2016-03-25
    • 2015-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多