动态加载控制器angularjs $ routeProvider [英] dynamically loading the controller in angularjs $routeProvider
问题描述
我现在有内置的路由的AngularJS应用并与静态控制器
属性分配完美的作品。但我真正想要做的是动态分配与不同的路线控制器:
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)
}
})
我想这样做的是在这里做同样的事情,我的控制器
属性,如:
$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
未找到
那么,有没有办法可以在动态路由配置加载我的控制器功能的名称?
so is there any way I could dynamically load my controller function name in route configuration?
推荐答案
这是可以使用做角UI路由器。
ui的路由器可以让你指定一个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";
}
})
我希望它能帮助!
I hope it helps!
这篇关于动态加载控制器angularjs $ routeProvider的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!