【问题标题】:You can not supply no "ons-page" element to "ons-navigator"您不能向“ons-navigator”提供任何“ons-page”元素
【发布时间】:2025-12-30 20:50:11
【问题描述】:

在 Android 设备上,我在加载 onsenui 页面时收到此错误。 这与http://onsenui.io javascript 库有关。

您不能向“ons-navigator”提供任何“ons-page”元素。

【问题讨论】:

  • 你能展示你的代码吗?

标签: onsen-ui


【解决方案1】:

由于 Vu Nguyen 的回答有些正确,但它并没有真正解释可能发生这种情况的其他场景,我将分享我的解决方案。对我来说,当我从 1.1.4 升级到 Onsen UI 1.3.0 时出现了问题,我得到这个错误的地方是 navigator.pushPage('page1.html'),其中 page1.html 看起来像这样:

<ons-template id="page1.html">
  <ons-sliding-menu
        menu-page="menu.html"
        main-page="browse.html"
        side="left">
  </ons-sliding-menu>
</ons-template>

现在 Onsen UI 无法找到以前由于某种原因不需要的 ons-page。所以解决方案是像这样将 ons-sliding-menu 包裹在 ons-page

<ons-template id="page1.html">
  <ons-page>
    <ons-sliding-menu
        menu-page="menu.html"
        main-page="browse.html"
        side="left">
    </ons-sliding-menu>
  </ons-page>
</ons-template>

【讨论】:

  • 我不知道你为什么投了反对票,但你的回答解决了我的问题,你得到了我的支持,谢谢!
【解决方案2】:

如果没有 ons-page,则 ons-navigator 没有可导航的内容:)

如果您没有使用内联的 ons-page,请确保它加载了一个页面:

<body ng-app ng-controller="MyCtrl">
    <ons-navigator var="myNavigator" page="mainPage.html">
    </ons-navigator>
</body>
</html>

【讨论】: