我有一个动态路由定义为:
$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
,但我的所有状态都没有被调用(随后我的 Controller 也没有被调用)。但是我的路线被遵守了(例如''被重定向到'/about')。没有控制台错误和值按预期返回(例如 index.html#/about
,$match & path = /about
)。
编辑
似乎 Require 是问题的一部分:
最佳答案
原来我是个白痴:当我从 ngRouter 切换到 ui.router 时,我忘记将 ng-view
切换到 ui-view
。工作plunkr:http://plnkr.co/edit/ZckIBlayuB10hooJ0sY5
关于javascript - angular-ui:ui-router 动态路由和状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20370594/