Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.06.2013, 18:32
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

ng-include или ng-transclude для выборочного показа контента
Простая задачка: показать определенный контент администратору, а от остальных скрыть или показать им что-нибудь другое.

Заменить весь вид в ng-view не катит, потому что админка это не отдельная сущность, а пара кнопочек и меню в стандартном интерфейсе пользователя. Более того, каждый независимый компонент должен строиться так, чтобы иметь свою администраторскую часть.

Можно использовать ng-show, но для объемных вещей не подойдет, т.к. не хочется загружать всем пользователям админские примочки.

Существуют ng-include и ng-transclude, но пока не соображу, что из них лучше и как правильно пользоваться. У кого-нибудь есть мысли по этому поводу?
Ответить с цитированием
  #2 (permalink)  
Старый 03.06.2013, 21:09
Новичок на форуме
Отправить личное сообщение для just-boris Посмотреть профиль Найти все сообщения от just-boris
 
Регистрация: 03.06.2013
Сообщений: 5

Ну если это всего пара кнопок, но лучше их скрыть через ng-show или ng-if, много ресурсов они не заберут.
Если это что-то более серьезное, то наверно стоит использовать ng-include, обернутый в ng-if:
<div ng-if="showAdminPanel">
   <div ng-include="adminPanel.tpl.html"></div>
</div>
Ответить с цитированием
  #3 (permalink)  
Старый 10.06.2013, 08:37
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

используй геттер в 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>
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 10.06.2013 в 09:28.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
QuickSearch или фильтр для грида IgorN ExtJS 1 29.09.2010 16:34
Чтоб ссылка появлялась один раз для каждого пользователя (по IP или Cookies) Sequoia Общие вопросы Javascript 2 28.01.2010 19:16
Модуль для работы с модулями JSprog Ваши сайты и скрипты 29 02.09.2009 13:31
нужна программа для этого. Чем писать? javascript или php? spam-server Серверные языки и технологии 3 27.08.2009 00:52
Аналог wmode=transparent для Canvas или svg lusever Events/DOM/Window 1 15.06.2009 16:05