1

无论我在路由设置中首先放置的哪个子状态都是加载的那个。其他一切都很好。解析依赖项被继承,视图被渲染并且控制器被实例化。但是第二个孩子状态完全被忽略了......

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>

我真的很感谢任何帮助,尝试了我能想到的一切,并且在搜索 wiki、群组、谷歌、stackoverflow 后数小时感到筋疲力尽......谢谢!

4

1 回答 1

1

我不确定您是否正确理解 ui-router。状态基本上对应于 URL(抽象时除外)。我猜你想要一个状态,将内容放入你的状态“提要”的两个子视图中。

$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”开头。所以它是一个儿童状态。

于 2014-07-05T14:10:07.237 回答