javascript - Angular UI Router 仅加载第一个声明的子状态

标签 javascript angularjs parent-child angular-ui-router nested-views

我在路由设置中首先放置的子状态就是加载的子状态。其他一切都很好。解决依赖关系按其应有的方式继承,呈现 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/

相关文章:

ruby-on-rails - 如何在 Rails 验证中使用父记录的值

php - 使用 htaccess 的通配符 URL 模式

javascript - 如果未单击 Bootstrap 选项卡,如何 checkin jQuery?

javascript - 删除具有特定类名的元素(使用 javascript)?

c# - 如何将字符串数组从 AngularJS 传递到 C# web api?

javascript - AngularJS:更新模型传递给指令

c# - 业务对象(在层次结构中)之间的循环引用是否常见?

javascript - 在同一导航点击上重新加载路由器组件 - 在导航点击时刷新页面

javascript - 如何使用 Angular 防止随机定位的图像重叠

angularjs - Angular ui-router ng-if当前确切状态