Fra*_*isc 8 angularjs angular-ui-router
我有这种状态结构:
.state('places',
{
url:'/places',
controller:'PlacesController',
templateUrl:'views/places.html'
})
.state('places.city',
{
url:'/:city',
templateUrl:function(stateParams)
{
return 'views/places/'+stateParams.city+'.html';
}
});
Run Code Online (Sandbox Code Playgroud)
它工作得很好,除非URL /places之后没有城市.
如何templateUrl在子状态中具有默认值?
我认为最好的方法是设置ui-view PlacesController,但这似乎是不可能的.
Aar*_*son 15
尝试使用设置为空字符串的URL定义另一个子状态:
.state('places.default', {
url: '',
templateUrl: '...'
}
Run Code Online (Sandbox Code Playgroud)
然后添加abstract: true到父状态.
无需更改状态配置,您可以将默认模板直接ui-view放在HTML中的标记之间:
<!-- places.html -->
<div ui-view>
<h1>Please choose a place</h1>
</div>
<!-- london.html -->
<h1>London is amazing!</h1>
Run Code Online (Sandbox Code Playgroud)
现在,当您导航到时/places,您将看到"请选择一个地方"消息,当您导航到时/places/london,您将看到"伦敦太棒了!".
正如 Angular-UI Wiki 页面中所述:
激活状态主要有以下三种方式:
- 调用 $state.go()。高级便捷方法。
- 单击包含 ui-sref 指令的链接。
- 导航到与状态关联的 url。
https://github.com/angular-ui/ui-router/wiki#activating-a-state
| 归档时间: |
|
| 查看次数: |
7408 次 |
| 最近记录: |