1

ルーティング設定で最初に配置した子ステートがロードされます。他のすべては問題なく動作します。Resolve 依存関係は必要に応じて継承され、ビューがレンダリングされ、コントローラーがインスタンス化されます。しかし、2 番目の子状態は完全に無視されます...

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>

ウィキ、グループ、グーグル、スタックオーバーフローを何時間も検索した後、私が考えることができるすべてを試し、疲れを感じました...ありがとう!

4

1 に答える 1

1

ui-router を正しく理解しているかどうかわかりません。状態は基本的に URL に対応します (抽象的である場合を除く)。状態「フィード」の2つのサブビューに物を入れる1つの状態が必要だと思います。

$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 に答える