2015-11-04 2 views
2

Я разрабатываю приложение для Android в Кордове, используя Onsenui, в котором я хочу, чтобы перейти к предыдущей странице, когда BackButton устройства щелкнуло Я использую ответ от this вопроса решить вопросонсэн Ui: проверочные андроид BackButton маршруты:

Вот мой код

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"

ответ

3

Возможно .navigator-container устарел, поэтому я предлагаю вам получить навигатор, используя ons-navigator в качестве аргумента для document.querySelector().

Вот фиксированный код:

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

EDIT

Предположив, что вы используете старую версию онсэн 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(); 
} 
+0

Я получу еще один элемент ошибки. 'element.popPage не является функцией' –

+0

Какую версию пользовательского интерфейса Onsen вы используете? С Onsen 1.3.11 он отлично работает. Если вы используете более старую версию, попробуйте выполнить 'ons.compile (element);' before' element.popPage() ' –

+0

Позвольте мне попробовать, что кнопка –

Смежные вопросы