使用ui-router在嵌套视图中传递参数

时间:2018-07-10 02:23:14

标签: angularjs angular-ui-router

我在理解如何使用AngularJS正确传递参数时遇到了麻烦。

这是我试图在app.js文件中用于嵌套视图的代码,但是,嵌套状态始终无法正确呈现。

.config(function($stateProvider, $urlRouterProvider) {
  $stateProvider

  .state('news', {
    url: '/news',
    templateUrl: 'templates/news.html',
    controller: 'NewsCtrl'
  })

  .state('news.id', {
    url: '/news/:id',
    templateUrl: 'templates/news.id.html',
    controller: 'NewsCtrl'
  });

  // if none of the above states are matched, use this as the fallback
  $urlRouterProvider.otherwise('/news');
})

它将尝试将URL更改为#/ news / news /:id而不是#/ news /:id。

如果我尝试将路径更改为#/ news /:id,则页面无法正确呈现。

使用参数实现这些嵌套视图的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

根据ui-route wiki

  

将url路由与嵌套状态一起使用时,默认   行为是让子州将其网址附加到每个州的网址   的父国家。

     

如果您想要绝对的url匹配,则需要添加前缀   您的网址字符串带有特殊符号“ ^”。

因此,您应该尝试

List