我的动态路线定义为:
$urlRouterProvider
.when(
'/:resource?collection&type&id',
[
'$match', '$stateParams',
function routeValidator( $match , $stateParams )
{
var path = '';
angular.forEach($match, function joinner( val , key )
{
if ( angular.isDefined(val) ) path += '/' + val;
});
return path;
}
]
)
.when( '' , '/about' )
.when( '/' , '/about' )
.otherwise( '/404' );
然后是几个州:
$stateProvider
.state('about',
{
"url": "/about",
"templateUrl": "about.tmpl"
}
)
//…
我尝试点击index.html#/
或index.html#/about
,并且我的状态都没有被调用(后来没有我的控制器)。但是我的路线被遵守(前''被重定向到'/ about')。没有控制台错误和值按预期返回(例如index.html#/about
,$ match& path = /about
)。
似乎需求是问题的一部分:
答案 0 :(得分:9)
转过来我是个白痴:当我从ngRouter切换到ui.router时,我忘了将ng-view
切换到ui-view
。工作人员:http://plnkr.co/edit/ZckIBlayuB10hooJ0sY5