我有一个仪表板页面。说它是学生仪表板,它有很多关于学生的详细信息,如他的个人详细信息,课程详情,项目详细信息等。内部student.html
personal-details.html
,course-details.html
,project-details.html
使用ng-include
包含。
学生可以查看这些详细信息,也可以编辑它们。对于此功能,我编写了一个控制器StudentController
,如下所示,
(function(){
"use strict";
angular.module('myApp')
.controller('StudentController',StudentController);
StudentController.$inject=['StudentService'];
function StudentController(StudentService){
var vm = this;
vm.studentData = null;
vm.editPersonalDetails = editPersonalDetails();
vm.editCourseDetails = editCourseDetails();
activate();
function activate(){
StudentService.getStudent().then(queryStudentCompleted);
}
function queryStudentCompleted(res){
vm.studentData = res.data;
}
function editPersonalDetails(){
StudentService.editPersonalDetails(vm.studentData);
}
function editCourseDetails(){
StudentService.editCourseDetails(vm.studentData);
}
}
在我的实际应用中,有很多面板要显示,一切都是可编辑的。
1)我应该为不同的ng-include
d页面使用不同的控制器,还是单个控制器就足够了(认为包含超过7个htmls且每个面板都可编辑)?如果是,那么子控制器(比如personalDetailsController,courseDetailsController,其中包含编辑方法)如何访问vm.studentData
中收到的studentController
?在页面中我可以使用ControllerAs
语法直接显示它,但是当我编辑它时,我需要将编辑后的值发送到子控制器。
2)目前studentData
包含应在页面中显示的所有详细信息。我应该以这种方式保留它还是我需要将数据分成更小的块?