Будет ли возникать какая-либо проблема, когда мы поместим более одной `ng-init` на одной странице (комбинация нескольких неполных страниц)

На странице имеется более одного частичного просмотра. Например.

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 так будет ли проблема?

Код ng-init во всех partial views выглядит как ниже:

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

1 ответ

Решение

Если ваша страница имеет дело только с информацией об ученике и каждая из них использует свою коллекцию, то все будет хорошо. 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 разных набора результатов. Так что если вы хотите использовать этот странный подход, вам потребуется другой контроллер для получения подробной информации, оценки и посещаемости. Я только говорю, что это странно в этом случае, так как вы имеете дело только с одной обязанностью - студентами, поэтому вы определенно не хотите использовать этот подход, но решили, что я все равно объясню. Если у вас был сайт, на котором вам нужно было перечислить сведения об учениках, а затем запустить некоторые отчеты по учащимся, было бы разумно разделить контроллеры для учеников и отчетов.

Другие вопросы по тегам