我正在使用状态来更改表格中的数据。
网址格式为/zone/:zoneCode
但是,当只访问/zone
时,我希望它默认为某个zoneCode
。
这是我的代码:
.state('zone',
{
url:'/zone',
controller:'ZoneController',
templateUrl:'views/zone.html'
})
.state('zone.code',
{
url:'/:zoneCode',
templateUrl:function(stateParams)
{
return 'views/zone-codes/'+stateParams.zoneCode+'.html';
}
}
为每个子视图加载的模板包含一个显示数据的表
如果网址中没有zoneCode
,则表格不存在,因为ui-view
无法加载templateUrl
。
如何设置父状态的默认值?
感谢。
答案 0 :(得分:55)
虽然问题已经很久了,但我还是想提供一个答案,因为我遇到了同样的问题。答案可以找到in this Stackoverflow question。要将答案应用于您的案例:
$urlRouterProvider.when('/zone','/zone/'+zoneCode);
urlRouterProvider检查url是否为[yoururl] / zone。如果是这种情况,它将重定向到[yoururl] / zone / zoneCode,并将zoneCode作为您指定的区域。
希望它有所帮助!
答案 1 :(得分:13)
您也可以通过重定向到您设置的默认路线来处理不存在的路线。
$urlRouterProvider.otherwise('/');
$stateProvider.state("zone", {
url: "/",
templateUrl: "views/zone.html",
});