7

我正在使用角度 ui-bootstrap 库,但我不知道如何为每个选项卡指定自定义href

<tab ng-repeat="tab in tabs" active="tab.active" heading={{tab.name}}></tab> 

在角度 ui-bootstrap 文档中,指定了一个可选参数select()但我不知道如何使用它来自定义每个选项卡的链接

改写问题的另一种方法是如何使用带有角度 ui-bootstrap 选项卡的路由

4

3 回答 3

10

我希望现在还不算晚,但我今天遇到了同样的问题。您可以通过以下方式实现:

1)在控制器中定义标签href:

$scope.tabs = [
  { title:"tab1", href:"#/route1/page1" },
  { title:"tab2", href:"#/route1/page2" }
];

2)声明一个函数来改变控制器中的哈希值:

$scope.changeHash = function(data) {
  window.location.hash = data;
};

3) 使用以下标记:

  <tabset>
    <tab ng-repeat="tab in tabs" heading="{{tab.title}}"
        active="tab.active" select="changeHash(tab.href)" />
  </tabset>

我不确定这是否是最好的方法,我很想听听其他人的意见。

于 2013-08-19T09:40:47.340 回答
3

使用 angular-ui-router 时,只需要添加一个 ui-sref 属性即可。例如

<tabset>
    <tab ng-repeat="tab in tabs" heading="{{tab.title}}"
    active="tab.active" ui-sref="stateName({param:somevalue,param2:tab.somekey})" /></tabset>
于 2015-07-29T21:05:33.050 回答
0

为了避免 $rootScope:infdig 错误,我按照说明将函数更改为:

$scope.changeHash = function(data) {
    $location.path(data);
};

但请记住在控制器中注入 $location 服务。

于 2017-01-25T01:37:19.620 回答