2016-04-12 21 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

相关问题