angular-ui-router和angular-ui-bootstrap选项卡:内容多次加载到DOM中

保罗

我正在使用angular-ui-bootstrap选项卡和angular-ui-router。单击选项卡时,我想将特定状态加载到选项卡窗格中。一切正常。问题在于该状态正在加载到DOM中的每个选项卡窗格中。尽管用户永远不会说,但是让所有这些内容在DOM中不必要地重复并不是一个好主意。发生这种情况的原因很明显-状态模板已插入到ui-view中,如下所示:

<tabset>
  <tab class="clinical-tabs" ng-repeat="tab in tabs" heading="{{tab.title}}" active="tab.active" disabled="tab.disabled" ui-sref="activity.clinical.{{tab.title}}">
    <div ui-view></div>
  </tab>
</tabset>

结果是在每个选项卡窗格中都加载了内容:

<div class="tab-content">
  <!-- ngRepeat: tab in tabs -->
  <div class="tab-pane ng-scope active" ng-repeat="tab in tabs" ng-class="{active: tab.active}" tab-content-transclude="tab">
    <!-- uiView:  -->
    <div ui-view="" class="ng-scope">
      CONTENT IS LOADED HERE
    </div>
  </div>
  <!-- end ngRepeat: tab in tabs -->

  <div class="tab-pane ng-scope" ng-repeat="tab in tabs" ng-class="{active: tab.active}" tab-content-transclude="tab">
    <!-- uiView:  -->
    <div ui-view="" class="ng-scope">
      CONTENT IS ALSO LOADED HERE
    </div>
  </div>
  <!-- end ngRepeat: tab in tabs -->
  ...
  ...
  ...
</div>

就像我说的那样,问题的原因很明显。但是,我没有足够的Angular经验来了解如何提出解决方案。

保罗

我找到了解决方案。诀窍是在ui-router中使用多个命名视图

应当更改HTML代码,以便现在命名ui视图(注意,不再需要ui-sref):

<tabset>
  <tab class="clinical-tabs" ng-repeat="tab in tabs" heading="{{tab.title}}" active="tab.active">
    <div ui-view="{{tab.title}}"></div>
  </tab>
</tabset>

在主模块中,$ stateProvider应配置不同有一个很好的教程设置一个名为可欣赏UI路由器的多个位置结构应类似于:

.state('[parent]', {
  url: '/[someurl]',
  views: {
    '': { //<--this is the main template
      templateUrl: 'views/[view].html',
      controller: '[controller]'
    },
    '[child]@[parent]': { //<--these are the nested, named views that correspond to each tab
      templateUrl: 'views/[view].html',
      controller: '[controller]'
    },
    '...

现在,不是将一个模板注入到DOM中5次(用于5个选项卡),而是将每个模板注入到其正确的ui视图中,因此没有重复项。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Angular UI / Bootstrap UI隐藏选项卡标题

来自分类Dev

UI网格在Angular-UI选项卡中消失

来自分类Dev

Angular ui-router ...显示默认选项卡

来自分类Dev

Angular UI Bootstrap选项卡+ ng-include

来自分类Dev

Angular-ui-router和href ='#'

来自分类Dev

Angular-UI-Router和IIS发布

来自分类Dev

Angular-Bootstrap UI选项卡:“删除”选项卡选项

来自分类Dev

angular ui bootstrap选项卡组件:未单击选项卡处于活动状态时如何获取选项卡内容

来自分类Dev

Angular ui.router重新加载模板

来自分类Dev

使用Angular UI Bootstrap在动态创建的选项卡上设置活动选项卡

来自分类Dev

Angular UI-Bootstrap选项卡:未设置活动选项卡

来自分类Dev

Angular UI-Bootstrap选项卡:未设置活动选项卡

来自分类Dev

ui-bootstrap(Angular.JS)中的选项卡的淡入效果

来自分类Dev

如何使用ng-show / ng-hide隐藏Angular Bootstrap UI中的选项卡

来自分类Dev

如何使用ng-show / ng-hide隐藏Angular Bootstrap UI中的选项卡

来自分类Dev

在Angular UI Router中嵌套路由

来自分类Dev

在Angular UI Router中嵌套路由

来自分类Dev

如何从 Angular UI-router 中删除 #

来自分类Dev

Angular和bootstrap UI选项卡均处于活动状态,以防止出现默认情况

来自分类Dev

如何使用Angular UI选项卡和UI Grid重新绘制表?

来自分类Dev

Angular UI Router:专用的UI视图

来自分类Dev

带有ui-router的Angular Material md-tabs不会加载初始选项卡

来自分类Dev

Angular UI Router单独的文件

来自分类Dev

angular-ui-router错了

来自分类Dev

Angular UI Router重置$ scope

来自分类Dev

Angular ui-选项卡控制器执行多次

来自分类Dev

Angular UI,Bootstrap Navbar折叠和Javascript

来自分类Dev

Angular UI选项卡的Select事件未按预期工作

来自分类Dev

Angular UI-以编程方式设置活动选项卡

Related 相关文章

  1. 1

    使用Angular UI / Bootstrap UI隐藏选项卡标题

  2. 2

    UI网格在Angular-UI选项卡中消失

  3. 3

    Angular ui-router ...显示默认选项卡

  4. 4

    Angular UI Bootstrap选项卡+ ng-include

  5. 5

    Angular-ui-router和href ='#'

  6. 6

    Angular-UI-Router和IIS发布

  7. 7

    Angular-Bootstrap UI选项卡:“删除”选项卡选项

  8. 8

    angular ui bootstrap选项卡组件:未单击选项卡处于活动状态时如何获取选项卡内容

  9. 9

    Angular ui.router重新加载模板

  10. 10

    使用Angular UI Bootstrap在动态创建的选项卡上设置活动选项卡

  11. 11

    Angular UI-Bootstrap选项卡:未设置活动选项卡

  12. 12

    Angular UI-Bootstrap选项卡:未设置活动选项卡

  13. 13

    ui-bootstrap(Angular.JS)中的选项卡的淡入效果

  14. 14

    如何使用ng-show / ng-hide隐藏Angular Bootstrap UI中的选项卡

  15. 15

    如何使用ng-show / ng-hide隐藏Angular Bootstrap UI中的选项卡

  16. 16

    在Angular UI Router中嵌套路由

  17. 17

    在Angular UI Router中嵌套路由

  18. 18

    如何从 Angular UI-router 中删除 #

  19. 19

    Angular和bootstrap UI选项卡均处于活动状态,以防止出现默认情况

  20. 20

    如何使用Angular UI选项卡和UI Grid重新绘制表?

  21. 21

    Angular UI Router:专用的UI视图

  22. 22

    带有ui-router的Angular Material md-tabs不会加载初始选项卡

  23. 23

    Angular UI Router单独的文件

  24. 24

    angular-ui-router错了

  25. 25

    Angular UI Router重置$ scope

  26. 26

    Angular ui-选项卡控制器执行多次

  27. 27

    Angular UI,Bootstrap Navbar折叠和Javascript

  28. 28

    Angular UI选项卡的Select事件未按预期工作

  29. 29

    Angular UI-以编程方式设置活动选项卡

热门标签

归档