【问题标题】:Onsen - navigator and sliding menu - function on prepush doesn't working温泉 - 导航器和滑动菜单 - 预推功能不起作用
【发布时间】:2015-04-16 08:58:05
【问题描述】:

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

这是我的代码笔示例:

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

如果您留在 Home 并从该点导航,那么您会看到 console.log 。 但是,如果您从滑动菜单更改并转到 Products,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>

我不知道如何创建一个工作示例。

我希望有人可以帮助我。

谢谢!

【问题讨论】:

    标签: slidingmenu onsen-ui navigator


    【解决方案1】:

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

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

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

    希望对你有帮助!

    【讨论】:

    • 我已经更新了我的 codepen。我有一个问题:我可以在导航器的属性中放置一个函数吗?如果你看到这个例子,家庭不工作,但产品工作良好。谢谢
    • 表达式在 AngularJS 中解析,所以它只承认 Angular 的 $scope 变量 :/ 。你可以在这里查看它是如何工作的:codepen.io/frankdiox/pen/QwePKV
    • 使用 jQuery 和 Onsen UI 1.3.0 你可以做类似的事情:$(document).on('ons-navigator:prepush', 'ons-navigator', function(event) { console.log("Pushed!"); });
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-16
    • 2018-09-02
    • 1970-01-01
    相关资源
    最近更新 更多