我正在使用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.html
和legislator.profile.html
)。