如何为每个Angular UI路由器状态设置不同的控制器
How to set a different controller for each Angular UI Router state
我正在尝试创建一个Angular UI Router状态,为每个状态指定一个控制器。例如,我教英语、设计、数学和其他一些课程,我想显示一个基于主题的模板。我有适当的模板加载正确,但我的考试控制器变得有点大。我想为每个主题分离一些逻辑,但不确定实现这一目标的最佳/标准方法是什么。我可能想多了。以下是我到目前为止所做的,如果有人有时间看一看,并提供一些指导,那将是伟大的。
.state('exam', {
url: '/exam',
abstract: true,
views: {
'':{
templateUrl: 'app/state-exam/exam.html',
controller: 'ExamController',
controllerAs: 'examController',
},
'exam-pagination@exam':{
templateUrl: 'app/state-exam/exam-pagination.html'
},
}
})
.state('exam.subject', {
url: '/:subject',
// here I would like to set a controller and controller as
// based on the subject
views: {
'exam-detail@exam' : {
templateUrl: function($stateParams){
return 'app/state-exam/exam-' + $stateParams.subject + '.html';
}
}
}
});
如果我做了这样的事情,它会被认为是不好的做法还是完全错误的?
.state('exam', {
url: '/exam',
abstract: true,
views: {
'':{
templateUrl: 'app/state-exam/exam.html',
controller: 'ExamController',
controllerAs: 'examController',
},
'exam-pagination@exam':{
templateUrl: 'app/state-exam/exam-pagination.html'
},
controller: function($stateParams){
switch ($stateParams.subject) {
case 'math':
return 'ExamMathController'
break;
case 'english':
return 'ExamEnglishController'
break;
}
}
}
})
.state('exam.subject', {
url: '/:subject',
views: {
'exam-detail@exam' : {
templateUrl: function($stateParams){
return 'app/state-exam/exam-' + $stateParams.subject + '.html';
}
}
}
});
您可以查看参数并根据需要执行任务。
.state('exam.subject', {
url: '/:subject',
controller:'subjectCtrl',
// here I would like to set a controller and controller as
// based on the subject
views: {
'exam-detail@exam' : {
templateUrl: function($stateParams){
return 'app/state-exam/exam-' + $stateParams.subject + '.html';
}
}
}
});
和in控制器
.controller('subjectCtrl',['$scope','$state','$stateParams',function($scope,$state,$stateParams){
switch($stateParams.subject){
case 'English':
//Task for english subject
break;
case 'Nepali':
//Task for nepali subject
break;
}
}]);
相关文章:
- 根据文件内容设置状态
- 设置状态PubSub ReactJS和Rails
- jquery在不触发更改事件的情况下切换设置状态
- Node.js中的垃圾收集作用域-变量将保持设置状态多长时间
- Angular JS-UI路由器页面重载获胜't设置状态
- 在 Dojo 增强网格筛选器栏上设置状态文本
- 反应本机,错误地设置状态中的项目值
- 设置状态 [反应本机] 后无法编辑输入文本
- 如何在 React 中从子组件设置状态
- PassportJS - 动态设置状态以允许在回调时重定向
- 在 $.get 中设置状态
- 如何为嵌套对象设置状态
- React-设置状态并同时获取值
- 道具未设置状态
- 使用React中的循环从JSON数组中获取数据并根据数据设置状态
- React:在设置状态之前启动初始渲染(通过ajax)
- Reactjs:设置状态与复选框:选中或未选中
- 如何在react中设置状态为新数据
- 在SignalR的客户端设置状态变量
- 当抛出错误时,反应本机提取无法设置状态