AngularJS,单控制器还是多个控制器,用于包含ng的视图?

时间:2015-10-15 11:53:47

标签: angularjs

我有一个仪表板页面。说它是学生仪表板,它有很多关于学生的详细信息,如他的个人详细信息,课程详情,项目详细信息等。内部student.html personal-details.htmlcourse-details.htmlproject-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包含应在页面中显示的所有详细信息。我应该以这种方式保留它还是我需要将数据分成更小的块?

0 个答案:

没有答案
相关问题