2013-06-29 26 views
7

我正在使用角度ui-bootstrap庫,但我無法確定如何爲每個選項卡指定自定義href如何爲角度ui-bootstrap選項卡指定href參數

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

在角UI的自舉文件,可選參數的select()被指定,但我不知道如何使用此被定製爲每個標籤

另一種方式重新組織的聯繫問題是如何使用角度ui-bootstrap選項卡的路由

回答

9

我希望這不是太晚,但我今天遇到同樣的問題。

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> 

我不太確定這是否是最好的方法,我很想聽聽fr其他人。

+0

謝謝。爲我工作 – gbozee

+0

它適合我 - 佈局工作,但只要我用'select'和'changeHash'方法實現了路由,就好像JS進入了一個無限循環,並且有大量的'Uncaught Error :[$ rootScope:infdig] 10 $ digest()迭代達到錯誤。似乎無休止地切換標籤,然後就失敗了。 – atconway

+0

這對我有效,但當我刷新頁面時,它給出錯誤'錯誤:[$ rootScope:infdig]'並返回到主頁而不是停留在我刷新的頁面上。不知道如何解決這個.. :( – kaluva

3

使用angular-ui-router時,只需要添加一個ui-sref attrib。 例如

<tabset> 
    <tab ng-repeat="tab in tabs" heading="{{tab.title}}" 
    active="tab.active" ui-sref="stateName({param:somevalue,param2:tab.somekey})" /></tabset> 
0

爲了避免$ rootScope:infdig錯誤,我遵循的指示,改變了功能:

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

但要記住在控制器中注入$位置服務。

相關問題