在 angularjs $routeProvider 中动态加载控制器 [英] dynamically loading the controller in angularjs $routeProvider
问题描述
我目前有一个内置路由的 AngularJS 应用程序,它与静态 controller
属性分配完美配合.但我真正想做的是动态分配具有不同路由的控制器:
I currently have an AngularJS app with routing built in and it works perfectly with static controller
property assignments. but what I really want to do is to dynamically assign controllers with different routes:
$routeProvider
.when("/Dashboards/:dashboardName",{
templateUrl:function(params) {
return "Dashboards/" + params.dashboardName;
//some ASP.NET MVC calls to return partial views (this part works)
}
})
我想做的是对我的 controller
属性做同样的事情,比如:
What I would like to do is to do the same thing about my controller
property here, like:
$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
is not found
but as it seems I am get an error saying paramsProvider
is not found
那么有什么办法可以在路由配置中动态加载我的控制器函数名称?
so is there any way I could dynamically load my controller function name in route configuration?
推荐答案
这可以使用 角度 ui-router.
ui-router 允许您指定controllerProvider"来指定提供控制器的功能.所以解决方案看起来像这样:
The ui-router lets you specify a "controllerProvider" to specify a function for providing a controller. So the solution would look like this:
$stateProvider
.state("/Dashboards/:dashboardName",{
templateUrl:function($stateParams) {
return "Dashboards/" + $stateParams.dashboardName;
},
controllerProvider: function($stateParams) {
return $stateParams.dashboardName+"Controller";
}
})
希望能帮到你!
这篇关于在 angularjs $routeProvider 中动态加载控制器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!