Javascript 角度ui:ui路由器动态路由和状态
我将动态路线定义为:Javascript 角度ui:ui路由器动态路由和状态,javascript,angularjs,requirejs,angular-ui,angular-ui-router,Javascript,Angularjs,Requirejs,Angular Ui,Angular Ui Router,我将动态路线定义为: $urlRouterProvider .when( '/:resource?collection&type&id', [ '$match', '$stateParams', function routeValidator( $match , $stateParams ) { var path = '';
$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
)
编辑
这似乎是问题的一部分:
- 它在JSFIDLE中工作,无需任何要求
- 它在plunker中不起作用
ng视图
切换到ui视图
。使用plunkr:首先考虑的是如何使用$locationProvider.hashPrefix(“!”)代码>并链接为index.html#/关于
Algularjs有时会把hashtags搞得一团糟,我们只是试过了。Nothin':/Sidenote:hashPrefix('!')在#符号:index.html#之后作为路由的前缀/关于