angular-ui:ui-router动态路由和状态

时间:2013-12-04 08:38:16

标签: javascript angularjs requirejs angular-ui angular-ui-router

我的动态路线定义为:

$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)。

修改

似乎需求是问题的一部分:

  • Here它在没有要求的情况下在jsfiddle中工作。
  • Here 在plunker中使用require。

1 个答案:

答案 0 :(得分:9)

转过来我是个白痴:当我从ngRouter切换到ui.router时,我忘了将ng-view切换到ui-view。工作人员:http://plnkr.co/edit/ZckIBlayuB10hooJ0sY5