我有一个大问题。 我想使用导航器和滑动菜单。然后我需要在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>
我无法弄清楚如何创建一个有效的例子。
我希望有人可以帮助我。
谢谢!
答案 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
希望它有所帮助!