当我们在单个页面(多个部分页面的组合)中放置多个 `ng-init` 时会出现任何问题吗?

Will there by any problem when we put more than one `ng-init` in a single page (combination of multiple partial page)

页面中有多个局部视图。例如。

1. index.cshtml is the main page.
2. _student_details.cshtml is partial page.
3. _student_marks.cshtml is partial page.
4. _student_attendance.cshtml is partial page.

这三个 partial views 都有自己的加载数据列表的方法。

这些加载数据列表的方法在 ng-init 上被调用,所以会有任何问题吗?

所有 partial viewsng-init 的代码如下所示:

<div id="student-list" ng-controller="StudentController as ctlr"
     ng-init="ctrl.GetStudentDetails()" ng-cloak>

如果您的页面只处理学生信息,并且每个页面都使用不同的集合来获取所需信息,那么就没问题。 ng-init="ctrl.GetStudentDetails()" 我猜得到了 student_details 部分视图的学生详细信息列表。如果您有 GetStudentMarks() 和 GetStudentAttendance() 并且这两种方法都不共享同一个集合,那么您就可以开始了。

如果出于某种奇怪的原因,您正在使用 GetStudentDetails() 来填充包含详细信息、分数和出勤信息的集合,那么它会像这样:

  • ng-init="ctrl.GetStudentDetails()" 调用详情 div
  • ng-init="ctrl.GetStudentDetails()" 在标记 div
    上被调用 替换上述集合的结果
  • ng-init="ctrl.GetStudentDetails()"在出勤时调用div替换上面收集的结果

显然您想要 3 组不同的结果。因此,如果你确实想采用这种奇怪的方法,你将需要一个不同的控制器来处理细节、标记和出勤。我只是说在这种情况下这很奇怪,因为你只处理一个责任,即学生,所以你肯定不想采用这种方法,但我想我还是会解释一下。如果您有一个站点需要列出学生的详细信息,然后 运行 一些关于学生的报告,那么将您的控制器分别用于学生和报告是有意义的。