我的结构如下:
-
ReportPageview
-
ReportController
-
ReportService
....
我的问题是关于控制器。
我的代码太长了,因为里面有很多不同的项目。
所以,我的屏幕已经分离了组件,但我很困惑如何使用我的控制器。
我做了什么:
我创建了其他控制器来执行逻辑,例如:
-
ReportAgeController(该控制器将执行年龄部分的所有逻辑,如按年龄范围计数项目)
-
ReportGenderController(该控制器将执行性别部分的所有逻辑,如按性别计数项目)
因此,在我的ReportController中有:
class ReportController extends GetxController {
late ReportService _reportService;
late AgeController ageController;
late GenderController genderController;
onInit(){
_reportService = Get.find<ReportService>();
ageController = ageController();
genderController = genderController(reportService: _reportService);
}
onReady(){
_getItems();
_generateReport();
}
_getItems(){
items = _reportservice.getItems();
}
List items = [];
_generateReport() {
for (var item in items) {
ageController.setAgeRange(item);
genderController.setGenderRange(item);
}
update();
}
... another logic here
}
在这种情况下,我可以调用以下过滤项
Text("Male count ${controller.genderController.all.toString()}");
我的问题是:AgeController和GenderController不是一项服务,但我不知道是否也可以称它们为Controller。
一个怎样才能调用这些类,怎样才能成为我的结构?
我改变后的实际结构是:
-
报告Pageview.dart
-
ReportController.dart
-
项目控制器(文件夹)
-
AgeController.dart
-
GenderController.dart
-
ReportService.dart