我有一个大问题。我想使用导航器和滑动菜单。然后我需要在推后有一些行为。
这是我的代码笔示例:
http://codepen.io/anon/pen/zxgpVo
如果您停留在Home中并从此点导航,则会看到console.log。但是,如果您从滑动菜单中更改并转到"产品",则console.log将不起作用,如果您返回主页,则不再在此处起作用。
我创建了两个同名的导航器。这是对的吗?也许这就是问题所在?
<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>
我不知道怎样才能创建一个工作示例。
我希望有人能帮助我。
谢谢!
我将尝试解释那里发生了什么(或者,至少,我所理解的):
项目的根是ons-sliding-menu
,然后您有两个子项,每个菜单项一个子项(主页和产品)。每个孩子都是一个同名的ons-navigator
,但这并不重要,因为他们不会同时"活着"。当您在主页中并使用menu.setMainPage('products.html')
时,您正在杀死首页的导航器并创建产品导航器。您的事件仅在一开始起作用,因为您仅第一次将它们与ons.ready()
上的home导航器关联。因此,当您使用setMainPage
时,您正在破坏具有这些事件的导航器,而新的导航器将不会具有这些事件。
您可以在创建导航器本身时指定postpush/prepush事件,而不是将事件与ons.ready
上的导航器相关联。文档中解释了一些特性:http://onsen.io/reference/ons-navigator.html#attributes
希望它能有所帮助!