角度是否支持动态路由?
也许这样的一些技巧:
也许这样的一些技巧:
$routeProvider.when('/:ctrl/:action',getRoute($routeParams.ctrl,$routeParams.action)) function getRoute(ctrl,action){ return { templateUrl: ctrl+"-"+action+".html" controller: 'myCtrl' } }
请帮帮我,我需要基于routeParams获取templateUrl
解决方法
这是一个迟到的答案,但我自己遇到了这个问题,但事实证明Dan的解决方案与ngView指令上的ngAnimate类冲突,并且显示了视图但是将立即应用ng-leave动画并隐藏视图用他的动态路由打开.
在$routeProvider中,templateUrl值可以是一个函数,并传递路由参数:
app.config(function ($routeProvider) { $routeProvider .when('/:page',{ templateUrl: function(routeParams){ return '/partials/'+routeParams.page+'.html'; } }) });
虽然控制器不能作为一个函数给出,所以我的解决方案是按照通常的ng-controller =“HomeCtrl”在模板html中给出它.
使用此解决方案,我们可以在Angular中按惯例进行路由.我希望这可以帮助那些不热衷于手动将每个路由添加到routeProvider的人.