OnsenUi getCurrentPage()给出空对象

时间:2015-07-30 16:49:38

标签: javascript jquery angularjs cordova onsen-ui

我正在使用Onsen UI构建混合移动应用程序,我在两页之间导航和传输数据时遇到问题。我的起始页面是index.html,它包含一个main.html ons-template和一个ons-navigation和一个ons-page元素。 index.html的结构是:

<body>
  <ons-sliding-menu main-page="main.html" menu-page="menu.html" side="left" type="reveal" var="menu">
  </ons-sliding-menu>

  <ons-template id="main.html">
    <ons-navigator var="navi">
      <ons-page id="main-page" class="main-page" ng-controller="MainPage">
      </ons-page>
    </ons-navigator>
  </ons-template>
</body>

我想通过popPage()函数的选项从search-city.html发回数据,但是当我尝试获取导航器的currentPage对象时,它给了我一个没有名称的空页面对象选项。

在chrome控制台中:

Class {page: "", name: "", element: JQLite[1], pageScope: Object, options: Object…}

尝试获取主页时它只是空的。另外,当我在search-city.html控制器中运行getPages()时,第一页是空的,search-city.html也没问题:

Class {page: "search-city.html", name: "search-city.html", element: JQLite[1], pageScope: Object, options: Object…}

我尝试发送回数据并使用popPage()方法从search-city.html导航:

navi.popPage({ animation: 'lift' , data: 'something'});

我尝试使用postpop事件处理程序获取主页控制器中的数据:

navi.on('postpop', function(event) {
  var page = navi.getCurrentPage();
  console.log('popped');
  console.log(page);
});

问题是,如上所示,页面是空的。为什么我的主页在页面堆栈中是空的?初始化后,它也是空的,运行getCurrentPage()

我做错了吗?有没有更好的方法在页面之间传递对象?我更喜欢jQuery而且我不熟悉AngularJS。

这是有关ons-navigation的文档:http://onsen.io/reference/ons-navigator.html#method-popPage

很抱歉这篇长篇文章。

2 个答案:

答案 0 :(得分:1)

我认为如果您将主ons-page直接放在导航器中,该页面就不会有名称(ID不同),并且无法在{}中读取它{1}}对象。你可以命名你的主页,我认为它会正常工作:

currentPage

希望它有所帮助!

答案 1 :(得分:0)

使用navigator.topPage.id检索当前页面的ID