我在AngularJS中设置了一个路径,其中包含一个可变参数。
这是this question的延伸;我可以在变量templateUrl中使用params
,如下所示:
.when('/course/:lesson', {
templateUrl: function(params){
return '/partials/course/' + params.lesson;
}
//...
})
但是,如果我尝试为变量控制器名称执行某些操作,则会出现unknown provider
错误
.when('/course/:lesson', {
templateUrl: function(params){
return '/partials/course/' + params.lesson;
},
controller: function(params){
return params.lesson + 'Ctrl';
}
})
基本上,我不是编写100条完全遵循完全相同结构的不同路线,而是想采用lesson
变量,并将其映射到/partials/course/{{lesson}}
路线以及{{1控制器。
这可能吗?
答案 0 :(得分:3)
你可以做类似下面的事情,而不是更清洁的事情。但它会起作用
controller: function($scope, $controller, $routeParams){
$controller($routeParams.lesson + 'Ctrl', {$scope: $scope});
}
如果你看ui.router
data-validation-error-msg="Please enter your first name"
,controllerProvider
会像你尝试的那样工作,那么处理这种情况会更容易。
答案 1 :(得分:0)