ng-include или ng-transclude для выборочного показа контента
Простая задачка: показать определенный контент администратору, а от остальных скрыть или показать им что-нибудь другое.
Заменить весь вид в ng-view не катит, потому что админка это не отдельная сущность, а пара кнопочек и меню в стандартном интерфейсе пользователя. Более того, каждый независимый компонент должен строиться так, чтобы иметь свою администраторскую часть. Можно использовать ng-show, но для объемных вещей не подойдет, т.к. не хочется загружать всем пользователям админские примочки. Существуют ng-include и ng-transclude, но пока не соображу, что из них лучше и как правильно пользоваться. У кого-нибудь есть мысли по этому поводу? |
Ну если это всего пара кнопок, но лучше их скрыть через ng-show или ng-if, много ресурсов они не заберут.
Если это что-то более серьезное, то наверно стоит использовать ng-include, обернутый в ng-if: <div ng-if="showAdminPanel"> <div ng-include="adminPanel.tpl.html"></div> </div> |
используй геттер в ng-include
в контролёре function pageCtrl($scope) { var include="test2.html" $scope.getInclude=function() { return include; //alert(include); } $scope.setInclude=function(url) { include=url; } } В шаблоне <div ng-include="getInclude()"></div> теперь если вызвать $scope.setInclude("test3.html") содержимое ng-include изменится на test3.html Идея в голову пришла, правда не знаю проканает ли такой паттерн, но вроде должен. здесь отображаемая страница зависит от переменной num $scope.getInclude=function(num){ return "page"+num+".html"; } //... <div ng-include="getInclude(numpage)"></div> |
Часовой пояс GMT +3, время: 07:19. |