我在路由设置中首先放置的子状态就是加载的子状态。其他一切都很好。解决依赖关系按其应有的方式继承,呈现 View 并实例化 Controller 。但是第二个子状态完全被忽略了......
app.coffee 中的路由
$stateProvider
.state 'feed',
abstract: true
url: '/'
templateUrl: 'views/feed.html'
controller: 'FeedController'
resolve: (a bunch of them :P)
.state 'feed.timeline',
url: ''
views:
'timeline':
templateUrl: 'views/partials/feed/timeline.html'
controller: 'FeedTimelineController'
.state 'feed.trending',
url: ''
views:
'trending':
templateUrl: 'views/partials/feed/trending.html'
controller: 'FeedTrendingController'
index.html 中的占位符:
<div class="container">
<div ui-view></div>
</div>
在“views/feed.html”中:
<div ui-view="trending"></div>
<div ui-view="timeline"></div>
我真的很感谢任何帮助,尝试了我能想到的一切,在搜索维基、群组、谷歌、stackoverflow 几个小时后感到筋疲力尽......谢谢!
最佳答案
我不确定你是否正确理解了 ui-router。状态基本上对应于 URL(除非它是抽象的)。我想您希望有一个状态将内容放入状态“提要”的两个 subview 中。
$stateProvider
.state 'feed',
abstract: true
url: '/'
templateUrl: 'views/feed.html'
controller: 'FeedController'
resolve: (a bunch of them :P)
.state 'feed.index',
url: ''
views:
'timeline@feed':
templateUrl: 'views/partials/feed/timeline.html'
controller: 'FeedTimelineController'
'trending@feed':
templateUrl: 'views/partials/feed/trending.html'
controller: 'FeedTrendingController'
您不必选择“feed.index”作为名称,但它必须以“feed”开头。所以它是一个子状态。
关于javascript - Angular UI Router 仅加载第一个声明的子状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24586657/