当前位置: 首页 > 面试题库 >

角度ui-bootstrap选项卡不呈现ui-view

章烨烨
2023-03-14
问题内容

我将现有的angular应用程序升级到angular(v1.2.13),ui-router(v0.2.8)和ui-
bootstrap(v0.10.0)的所有最新版本。

我有具有多个命名视图的嵌套视图。其中一个命名视图内部具有选项卡。我以前可以ui- views在每个标签中进行设置,但现在不再起作用。如果我不使用选项卡,则命名视图将正确呈现。

我创建了一个plunkr以显示我所看到的。

这是我的状态配置。_split.html有3个命名视图:TOPMIDDLE,和BOTTOM
TOPMIDDLE都命名了视图LEFTRIGHT
TOP有标签且不呈现视图LEFTRIGHTMIDDLE具有相同的命名视图,并且它们可以正确呈现。

  $stateProvider
      .state("foo", {
        abstract: true,
          url: "/foo",
          templateUrl: '_split.html',
      })
      .state("foo.view", {
        abstract: true,
        url: '',
        views: {
          'TOP': {
            template: '_tabs.html'
          },
          'MIDDLE': {
             templateUrl: '_tabs2.html'
          },
          'BOTTOM': {
            template: '<h2>Bottom</h2>'
          }
        },
      })
      .state("foo.view.tabs", {
        url: '',
        views: {
          'LEFT': {
            template: '<h3>Left</h3>'
          },
          'RIGHT': {
            template: '<h3>Right</h3>'
          }
        }
      })

有什么办法可以在标签内呈现ui视图?


问题答案:

是的,您可以在标签内呈现ui视图。诀窍是使用ui-sref<tab-heading>控制状态/路由变化,并具有ui-view以下</tabset>。我敢肯定还有其他方法,但这就是我如何使用ui-router制作选项卡的方法。

编辑更新

以上原始建议是错误的,ui-sref应在<tab>

对chris-t的帽子提示,以进行正确的配置。

使用多个视图演示http://plnkr.co/edit/gXnFS3?p=preview

index.html

<tabset>
  <tab ui-sref="left">
    <tab-heading style="cursor:pointer;">
      <a ui-sref-active="active">Left</a>
    </tab-heading>
  </tab>
  <tab ui-sref="right">
    <tab-heading style="cursor:pointer;">
      <a ui-sref-active="active">Right</a>
    </tab-heading>
  </tab>
</tabset>
<div class="row">
  <br>
  <div class="col-xs-4">
    <div class="well" ui-view="viewA">
      <!--Here is the A content-->
    </div>
  </div>
  <div class="col-xs-4">
    <div class="well" ui-view="viewB">
      <!--Here is the B content-->
    </div>
  </div>
</div>

app.js(UI路由器配置)

$stateProvider
.state('left', {
  url: "/",
  views: {
    "viewA": {
      template: "Left Tab, index.viewA"
    },
    "viewB": {
      template: 'Left Tab, index.viewB<br><a ui-sref=".list">Show List</a>' +
                '<div ui-view="viewB.list"></div>'
    },
    "viewC": {
      template: 'Left Tab, index.viewC <div ui-view="viewC.list"></div>'
    }
  }
})
.state('left.list', {
  url: 'list',
  views: {
    "viewB.list": {
      template: '<h2>Nest list viewB</h2><ul>' +
                '<li ng-repeat="thing in tab1things">{{thing}}</li></ul>',
      controller: 'Tab1ViewBCtrl',
      data: {}
    },
    "viewC.list": {
      template: 'Left Tab, list.viewC'
    }
  }
})


 类似资料:
  • 问题内容: 我想在我的项目中使用AngularJS UI Bootstrap Tabs,但是我需要它来支持路由。 例如: 据我从源代码可以看出,current 和指令不支持路由。 添加路由的最佳方法是什么? 问题答案: 要添加路由,通常使用ng- view指令。我不确定修改角度UI以支持您要查找的内容是否足够容易,但这是一个大致显示我认为您要查找的内容(这不一定是最好的方式- 希望有人可以提供为您

  • 问题内容: 我正在使用有角度的ui-bootstrap typeahead,并且希望将其用作选择许多选项的方法,因此启动selectMatch方法时,我需要获取选定的值,但是我找不到方法在我的控制器中 如果我观看选定的值,则每按一次键都会得到更改… 我知道方法selectMatch是在用户按Enter或单击列表时调用的方法,但我不知道如何对此进行回调… 谢谢 ! 问题答案: 现在有更好的方法。添加

  • 问题内容: 有人知道如何清除angular中的ui-select框的选定值吗? 我想要select2的功能,其中selectbox中有一个小x。看起来好像没有select2获得的allow-clear方法。 问题答案: 如果您使用的是select2主题,则指令上有一个选项可以为您执行此操作。您将在右侧看到x,可以通过单击将其清除。 https://github.com/angular-ui/ui-

  • 本文向大家介绍jQuery UI制作选项卡(tabs),包括了jQuery UI制作选项卡(tabs)的使用技巧和注意事项,需要的朋友参考一下 先看一下效果: Jquery-UI 选项卡的制作实际上是利用锚点链接的原理,实现起来非常的简单。 第一步:引入 jquery 和 jquery-ui 文件。 以下是我的head部分的代码: 第二步:写面板布局。 其中 id="tab"的div用来包裹我们的

  • UI Bootstrap 是由 AngularJS UI 团队编写的纯 AngularJS 实现的 Bootstrap 组件。

  • jQuery UI Bootstrap 提供了在 jQuery UI 集成 Twitter 的 Bootstrap 框架的功能。