我正在使用Ionic Framework创建移动应用程序,但在使用UI Router时遇到了困难。我已经使一些屏幕正常工作,但是似乎无法使嵌套视图在带有参数的状态下工作。我想要一个看起来像/legislator/1/profile的URL。它的标题为“立法者#1”的名称,下面为标签。个人资料标签会自动显示,点击其他标签(例如/legislator/1/votes)会更改内容,但不会更改标题

我最终放弃了选项卡和sidemenu入门项目来自定义嵌套视图。这是我在app.js中拥有的东西。家和人。*状态可以正常工作,但是我似乎无法在配置文件视图就位的情况下加载立法者屏幕。我试过更改abstract&controller属性,但是还没有运气。

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

  .state('home', {
    url: "/home",
    templateUrl: "templates/home.html",
    controller: "homeController"
  })

  .state('people', {
    url: "/people",
    abstract: true,
    templateUrl: "templates/people.html"
  })

  .state('people.legislators', {
    url: "/legislators",
    templateUrl: "templates/legislators.html",
    controller: "legislatorController"
  })

  .state('people.following', {
    url: "/following",
    templateUrl: "templates/following.html",
    controller: "followingController"
  })

  .state('legislator', {
    url: "/legislator/{legislatorId:int}",
    templateUrl: "templates/legislator.html",
    abstract: true
  })

  .state('legislator.profile', {
    url: "/legislator/{legislatorId:int}/profile",
    templateUrl: "templates/legislator.profile.html",
    controller: "profileController"
  })

  .state('legislator.votes', {
    url: "/legislator/{legislatorId:int}/votes",
    templateUrl: "templates/legislator.votes.html",
    controller: "votelistController"
  })

  $urlRouterProvider.otherwise('/home');
  // if none of the above states are matched, use this as the fall-back
})


这种情况在UI路由器中应该如何工作?配置$ stateProvider后,选项卡应如何链接到嵌套状态?

感谢你给与我的帮助。

最佳答案

也许您的解决方案就像用Ui Router's ui-sref代替经典href一样简单:

更换

<ion-tab ... href="#/legislator/{ scopeLegislatorId }/profile">...</ion-tab>


通过

<ion-tab ... ui-sref="legislator.profile({ legislatorId: scopeLegislatorId })">...</ion-tab>


其中scopeLegislatorId是legislatorId,可从您的范围中获得。

如果这样做没有帮助,请向我们提供您的html文件(例如legislator.htmllegislator.profile.html)。

10-06 05:32