Выборочная загрузка javascript в зависимости от шаблона AngularJS

Я работаю в одностраничном веб-приложении, ведь для этого потребуется защита пользователя и пароля. Модули будут загружаться в зависимости от профиля пользователя, чтобы ограничить доступ на основе рулона.

я использую ng-view загрузить шаблоны, соответствующие идентификатору пользователя.

Как я могу выборочно загрузить соответствующий файл JavaScript контроллера шаблона?

<script script src="restrictetd/path/MyAngularControl.js"></script>

Нет смысла загружать файл JavaScript, если у пользователя нет доступа к этому конкретному шаблону.

Я действительно ценю любые советы.

1 ответ

Решение

Возможно, вы слишком усложняете свое приложение. Если ваше приложение не будет очень массовым, его будет проще поддерживать, если вы просто предоставите клиенту весь необходимый JavaScript-код. Это работа клиентов, чтобы не показывать действия, которые пользователь не должен выполнять, но это работа серверов, которая фактически обеспечивает это.

Однако делать то, что вы хотите, можно. Первое, что нужно сделать в маршруте, - это загрузить файл JavaScript и шаблон, но при этом маршрут изначально ничего не возвращает или какой-либо индикатор загрузки. Как только JS-файл загружен, добавьте тег сценария в HEAD или обработайте JS-файл, чтобы загрузить его. Затем загрузите шаблон и скомпилируйте его.

Одним из предостережений этого процесса является то, что НЕЛЬЗЯ использовать новые модули. Я бы порекомендовал добавить любую директиву be controllers / к модулю, который вы используете для ng-app. Новые вещи могут быть определены таким образом в уже запущенном приложении Angular, однако вы не можете ничего переопределить. Так что, если контроллер xyz уже существует, и вы загружаете другой контроллер xyz вторая загрузка ничего не сделает.

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