我正在使用ui-router构建一个角度应用程序,有一点我无法弄清楚。
左侧有一个侧边栏,还有一个内容区域。两者都由自己的控制器控制。当我在侧边栏中选择项目时,内容区域应该更新,但侧边栏必须保持其状态。它的作用是侧边栏在选择项目时也会重新加载。
app.coffee:
$urlRouterProvider.otherwise "/items/near/map"
$stateProvider
.state('items',
url: '/items'
abstract: true
templateUrl: "items.html"
)
.state('items.near',
url: '/near'
abstract: true
views:
'sidebar@items':
templateUrl: 'items-near-list.html'
controller: 'ItemsNearListCtrl'
)
.state('items.near.map',
url: '/map'
views:
'content@items':
templateUrl: 'items-near-map.html'
controller: 'ItemsNearMapCtrl'
)
.state('items.near.detail',
url: '/detail/:id'
views:
'content@items':
templateUrl: 'item-detail.html'
controller: 'ItemsNearDetailCtrl'
)
items.html:
<div>
<div ui-view="sidebar"></div>
<div ui-view="content"></div>
</div>
一个可能相关的问题是,如果我直接输入详细视图状态(/items/near/detail/x/
),侧边栏甚至不会加载任何内容。知道我做错了吗?
答案 0 :(得分:0)
嗯,我从未使用绝对@语法作为视图名称,但在查看文档之后,似乎这可能是问题所在。
请尝试不使用@items
或使用完整的状态/视图组合,例如sidebar@items.near
,content@items.near.map
和content@items.near.detail
。