javascript - Onsen UI 2.0 Splitter 和 PushPage 不能一起工作

标签 javascript angularjs cordova onsen-ui onsen-ui2

我制作了一个主选项卡(tab1.html),其中有一个菜单可以更改选项或转到设置...现在我希望您可以单击主选项卡(tab1.html)上的按钮来访问另一个(tab4.html)。问题是它不能同时工作,所以菜单(分割器)和推送页面功能;/如何解决它?菜单的拆分器:

<ons-splitter>
<ons-splitter-side id="menu" side="left" width="220px" collapse swipeable>
<ons-page>
  <ons-list>
    <ons-list-item onclick="fn.load('tab1.html')" tappable>
      <ons-icon icon="home" style="color: #1e88e5;"></ons-icon><p  style="opacity: 0.6;">&nbsp;&nbsp;&nbsp;Startseite</p>
    </ons-list-item>
    <ons-list-item onclick="fn.load('tab6.html')" tappable>
      <ons-icon icon="user" style="color: #1e88e5;"></ons-icon><p style="opacity: 0.6;">&nbsp;&nbsp;&nbsp;Mein Profil</p>
    </ons-list-item>
    <ons-list-item onclick="fn.load('tab8.html')" tappable>
      <ons-icon icon="sliders" style="color: #1e88e5;"></ons-icon><p style="opacity: 0.6;">&nbsp;&nbsp;&nbsp;Einstellungen</p>
    </ons-list-item>
  </ons-list>
</ons-page>
</ons-splitter-side>
<ons-splitter-content id="content" page="tab1.html"></ons-splitter-content>
</ons-splitter>

以及您应该转到第 4 页的导航器:

<ons-navigator id="pushpage_navigator" page="tab1.html"></ons-navigator>

然后tab1.html:

<ons-template id="tab1.html">
<ons-page> 
<div class="left"> <!--left-->
  <ons-toolbar-button onclick="fn.open()">
    <ons-icon icon="md-menu"></ons-icon>
  </ons-toolbar-button>
</div>
<button onclick="change()" />
</ons-page>

以及 tab4.html,您应该来自 tab1.html:

<ons-template id="tab4.html">
<ons-page>
<ons-toolbar>
  <div class="left"><ons-back-button>Back</ons-back-button></div>
  <div class="center">Uhrzeitenansicht</div>
 </ons-toolbar>
 </ons-page>
 </ons-template>

最后是 javscript:

//ONSEN UI 2.0
window.fn = {};

window.fn.open = function() {
  var menu = document.getElementById('menu');
  menu.open();
};

window.fn.load = function(page) {
  var content = document.getElementById('content');
  var menu = document.getElementById('menu');
  content.load(page)
 .then(menu.close.bind(menu));
};

function change()
{
  var myNavigator = document.getElementById('pushpage_navigator');
  myNavigator.pushPage('tab4.html');
}

如果您在拆分器之前设置“ons-navigator”标签,则拆分器将不起作用。如果您在它之后设置它,您会收到类似以下错误:myNavigator 为空或pushPage 已在运行。

最佳答案

在我看来,两个元素(分割器和导航器)的嵌套可能存在一些问题。它们都应该充当实际页面的容器。因此,如果您想同时使用两者,则应将其中一个放入另一个中。

如果你有类似的东西:

<ons-navigator id="pushpage_navigator">
  <ons-page>
    <ons-splitter>
      <ons-splitter-side id="menu" side="left" width="220px" collapse swipeable>
        <ons-page>
          <ons-list>
            <ons-list-item onclick="fn.load('tab1.html')" tappable>1</ons-list-item>
            <ons-list-item onclick="fn.load('tab6.html')" tappable>6</ons-list-item>
            <ons-list-item onclick="fn.load('tab8.html')" tappable>8</ons-list-item>
          </ons-list>
        </ons-page>
      </ons-splitter-side>
      <ons-splitter-content id="content" page="tab1.html"></ons-splitter-content>
    </ons-splitter>
  </ons-page>
</ons-navigator>

这样您就可以从一开始就访问拆分器和导航器。 Demo

如果我以某种方式误解了您,或者您有其他问题,请随时发表评论,我可以相应地更新我的答案。

关于javascript - Onsen UI 2.0 Splitter 和 PushPage 不能一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39594962/

相关文章:

javascript - Phonegap index.js 未输入 $(function(){})

javascript - Ionic + Cordova InappBrowser - 输入类型=文件不工作

javascript - Uncaught ReferenceError $ 未定义

javascript - 自定义属性附加事件太早了?

javascript - 防止输入量在 JQuery 中变为负数

javascript - 在 ng-repeat 中切换全部

javascript - 构建器模式不向对象添加值

javascript - 文本搜索——过滤两个不同对象/数组中的两个词

javascript - 如何测试这个组件/模板? :)

javascript - 使用jquery解析phonegap中的json数据