2016-04-12 20 views
0

在我的angularjs應用程序中,我用ui.router(urlRouterProvider)模塊和stateProvider替換了ngRoute(routeProvider),以在我的應用程序中的狀態之間導航。我可以在urlRouterProvider中使用href嗎?

現在我發現,ui路由器只適用於狀態和<a ui-sref="">而不是<a href="">。由於我必須使用javascript在應用程序之外設置應用程序導航,因此我無法將錨定從href更改爲sref。以下是我如何設置導航鏈接。

Portal.setNavigation(
     [ 
      { 
       "label": "Application1", 
       "selected": true, 
       "url": "/web/guest#/Application1" 
      } 
     ] 
    ); 

此代碼集相應的href屬性。這裏是我的stateProvider片段,其適用於手動放置srefs像這樣的:<a ui-sref="Application1">Application State 1</a>

app.config(['$stateProvider', '$urlRouterProvider', 
    function($stateProvider, $urlRouterProvider) { 
    $stateProvider 
     .state('Application1', { 
      url: '/Application1', 
      templateUrl: '/Application.html', 
      controller: 'AppCtrl' 
     }); 
}]); 

任何想法如何,我可以繼續使用UI路由器和使用的HREF通過國家導航?

+1

你能分享一些示例代碼嗎? –

回答

1

如果您通過執行類似window.location(url)的操作,通過javascript在應用程序之外導航,則應該能夠將狀態的路由放入url中,並且路由器應該能夠處理路由,即窗口.location(/ STATE1)。

下面是從揭示了這一點(link)一些輕的UI路由器的文字:

這裏是你如何設置一個基本的URL。

$stateProvider 
    .state('contacts', { 
     url: "/contacts", 
     templateUrl: 'contacts.html' 
    }) 

現在,當用戶訪問的index.html /觸點那麼「觸點」 狀態將成爲活性和主UI視圖將與 的「contacts.html」部分被填充。

+0

謝謝,我必須嘗試.. – domih

相關問題