【问题标题】:How to dynamicaly create ons-tabbar in page如何在页面中动态创建 ons-tabbar
【发布时间】:2019-12-10 20:39:01
【问题描述】:

我正在尝试在我的应用中动态生成标签栏页面。我尝试使用ons.createElement()document.createElement() 生成元素。但它不呈现页面。只有标签栏,或第一页,而不是第二页。你知道如何在 onsen ui 中动态渲染 tabbar 吗?

我正在使用 Onsen UI v2.10.8

非常感谢,祝你有美好的一天。

编辑我尝试的最后一个代码:

RenderTabButtons(view, $page, cb) {
    let data = [];
    let onsEle = `
      <ons-tab
        id="rdMainTab"
        page="rdMain.html"
        label="Main"
        icon="ion-home, material:md-home"
        active
      >
      </ons-tab>
    `;
    data.push(onsEle);
    let onsMapEle = null;
    if (view.mapVisible) {
      onsMapEle = `
        <ons-tab
          id="rdMapTab"
          page="rdDetailMap.html"
          label="Map"
          icon="ion-home, material:md-home"
        >
        </ons-tab>
      `;
      data.push(onsMapEle);
    }

    let wrap = `
      <ons-tabbar
        swipeable
        position="auto"
        id="reservation-detail-tabbar"
        class="x-margin-top"
      >`;
    for (let a = 0; a < data.length; a++) {
      wrap += data[a];
    }
    wrap += '</ons-tabbar>';

    $page[0].appendChild(ons.createElement(wrap));
    cb();
  }

【问题讨论】:

  • 你能分享你的代码吗?
  • 我会尝试清理最后的实验,一点点,然后发布。
  • @Hkachhia 添加了我尝试的最后一个代码,但我也愿意接受新的方法来解决这个问题

标签: javascript onsen-ui onsen-ui2


【解决方案1】:

是的,效果很好。只需将其附加到类名为“tab-bar”的元素上,不要忘记在元素上运行 ons.compile():

var $tab = $('<ons-tab  label="Label" ></ons-tab>');
$('.tab-bar').append($tab);
ons.compile($tab[0]);



<ons-tabbar>
  <ons-tab label="Tab 1" active></ons-tab>
  <ons-tab label="Tab 2"></ons-tab>
</ons-tabbar>

【讨论】:

  • 对不起,我忘记了,我使用的是版本 2,看起来没有方法编译。
猜你喜欢
  • 2021-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-29
  • 1970-01-01
  • 2016-12-11
  • 1970-01-01
相关资源
最近更新 更多