在 angularjs $routeProvider 中动态加载控制器 [英] dynamically loading the controller in angularjs $routeProvider

查看:41
本文介绍了在 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆