我在 AngularJS 中设置了一 strip 有可变参数的路由。
这是 this question 的扩展;我可以在变量 templateUrl 中使用 params
,如下所示:
.when('/course/:lesson', {
templateUrl: function(params){
return '/partials/course/' + params.lesson;
}
//...
})
但是,如果我尝试对变量 Controller 名称执行某些操作,则会收到未知提供程序
错误
.when('/course/:lesson', {
templateUrl: function(params){
return '/partials/course/' + params.lesson;
},
controller: function(params){
return params.lesson + 'Ctrl';
}
})
基本上,我不想编写 100 条完全遵循相同结构的不同路线,而是想采用 lesson
变量并将其映射到 /partials/course/{{ Lesson}}
路线以及 {{lesson}}Ctrl
Controller 。
这可能吗?
最佳答案
你可以做如下的事情,而不是更干净的事情。但它会起作用
controller: function($scope, $controller, $routeParams){
$controller($routeParams.lesson + 'Ctrl', {$scope: $scope});
}
如果你看看ui.router
,处理这种情况会更容易,其中有 controllerProvider
这会像你尝试的那样工作。
关于javascript - AngularJS - 在 Controller 名称中使用 NgRoute 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36951981/