温泉 - 导航器和滑动菜单 - 预刷的功能不起作用

时间:2015-04-16 08:58:06

标签: slidingmenu onsen-ui navigator

我有一个大问题。 我想使用导航器和滑动菜单。然后我需要在postpush上有一些行为。

这是我的代码集示例:

http://codepen.io/anon/pen/zxgpVo

如果你留在Home并从这一点开始导航,那么你会看到console.log。 但是,如果您从滑动菜单更改并转到产品,则console.log不起作用,如果您在Home中返回,则不再在此处工作。

我创建了2个同名的导航器。这是对的吗?也许这可能是问题?

<ons-template id="home.html">
  <ons-navigator page="page0.html" var="myNav"></ons-navigator>
</ons-template>

<ons-template id="products.html">
  <ons-navigator page="page_products.html" var="myNav"></ons-navigator>
</ons-template>

我无法弄清楚如何创建一个有效的例子。

我希望有人可以帮助我。

谢谢!

1 个答案:

答案 0 :(得分:1)

我会尝试解释那里发生的事情(或者至少,我理解的事情):

您项目的根目录是ons-sliding-menu,然后您有两个孩子,每个菜单条目一个(主页产品)。每个孩子都是一个名字相同的ons-navigator,但它不应该重要,因为它们不会同时“活着”。 当您在 home 并使用menu.setMainPage('products.html')时,您将杀死 home 的导航器并创建产品的导航器。您的活动仅在一开始就有效,因为您只在第一次ons.ready() 时将它们与家庭导航器相关联。因此,当您使用setMainPage时,您正在销毁具有这些事件的导航器,而新导航器将不会拥有它们。

您可以在创建导航器本身时指定postpush / prepush事件,而不是将事件与ons.ready上的导航器相关联。有些属性可以在文档中解释:http://onsen.io/reference/ons-navigator.html#attributes

希望它有所帮助!