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

查看:191
本文介绍了动态加载控制器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屋!

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