我目前有一个内置路由的AngularJS应用,它与静态controller属性分配完美配合。但是我真正想做的是为控制器分配不同的路由:
controller
$routeProvider .when("/Dashboards/:dashboardName",{ templateUrl:function(params) { return "Dashboards/" + params.dashboardName; //some ASP.NET MVC calls to return partial views (this part works) } })
我想做的是在controller这里对我的财产做同样的事情,例如:
$routeProvider .when("/Dashboards/:dashboardName",{ templateUrl:function(params) { return "Dashboards/" + params.dashboardName; //some ASP.NET MVC calls to return partial views (this part works) }, controller: function(params) { return params.dashboardName+"Controller"; (this part DOESN'T work) } })
但似乎我得到一个错误,说paramsProvider找不到
paramsProvider
所以有什么办法可以在路由配置中动态加载控制器功能名称?
使用angular ui-router可以做到这一点。
ui-router允许您指定“ controllerProvider”以指定用于提供控制器的功能。因此,解决方案如下所示:
$stateProvider .state("/Dashboards/:dashboardName",{ templateUrl:function($stateParams) { return "Dashboards/" + $stateParams.dashboardName; }, controllerProvider: function($stateParams) { return $stateParams.dashboardName+"Controller"; } })
希望对您有所帮助!