У меня есть несколько кнопок с ng-click
в контроллере, и я хочу изменить шаблон директивы, когда я нажимаю кнопку. Каков наилучший способ достичь этого? (Я позже использовать слайд в силу элемента)Изменение шаблона директивы с помощью ng-click
0
A
ответ
2
Директива:
myModule.directive('foo', function() {
return {
scope: {
templateType: '@'
},
template: '<div ng-if="templateType == \'a\'">' +
' this is template A ' +
'</div>' +
'<div ng-if="templateType == \'b\'">' +
' this is template B ' +
'</div>'
};
});
Шаблон:
<foo template-type="{{ templateType }}"></foo>
<a ng-click="templateType = 'b'" href="">Set template to b</a>
Контроллер:
$scope.templateType = 'a';
2
Вы можете расширить пример при условии, by @JB Nizet и использовать ng-include
для замены шаблонов, а управление шаблонами большего размера становится проще.
myModule.directive('foo', function() {
return {
scope: {
templateType: '@'
},
template: '<div ng-include="\'/templateRoot/\' + templateType">'+
'</div>'
};
});
Теперь вы можете создавать отдельные файлы шаблон и сделать их доступными по конкретной URL (в данном случае /templateroot/a
или /templateroot/b
)
+0
используя 'ng-include' действительно имеет смысл .. + 1 –
Смежные вопросы
- 1. Угловые директивы (ngclick not firing)
- 2. Изменение динамического элемента HTML с помощью директивы
- 3. Изменение шаблона директивы в соответствии с данными в атрибуте
- 4. Динамическое создание шаблона директивы
- 5. изменение в пользовательской директиве ngClick event/function
- 6. Редактирование ng-repeat item с помощью ngclick
- 7. AngularJS - шаблон шаблона директивы
- 8. Угловые директивы Установки шаблона
- 9. AngularJS - ngClick, пользовательские директивы, и изолированные сферы применения выпуск
- 10. Расширение сторонней угловой директивы и изменение ее шаблона
- 11. ngTouch ngClick не пузырь
- 12. Создание частного унаследованного внутреннего шаблона public с помощью директивы using
- 13. Обработка строк с помощью угловой директивы без шаблона
- 14. Как визуализировать данные древовидной структуры с помощью шаблона директивы
- 15. Сочетание ngClick с ngSwitch
- 16. Изменение свойства директивы снаружи
- 17. ngClick заставляет диаграмму D3 перерисовывать
- 18. ngclick с выражением в ngrepeat не работает
- 19. $ изменение местоположения не применяется на ngchange, но на ngclick
- 20. Динамическое изменение цвета с помощью директивы текста Угловая JS
- 21. Изменение значения ngModel ввода с помощью директивы Angular 2
- 22. Trigger нг-изменение с помощью директивы в Angularjs
- 23. Angularjs, определяющий routeChangeStart из директивы внутри шаблона
- 24. Обновление шаблона AngularJS директивы по
- 25. Компиляция динамической директивы внутри шаблона
- 26. AJAX запрос внутри шаблона директивы
- 27. Атрибут директивы тестирования без шаблона
- 28. Как включить ngClick с ngClickOverrideEnabled
- 29. AngularJS: объект модели дерева с использованием динамического шаблона директивы
- 30. Угловое связывание директивы без шаблона controllerAs
Я хотел бы предложить использовать различные маршруты/вид для каждого частичной точки зрения – harishr
, что если и шаблоны большие ..? –
Затем вы будете экстернализовать шаблон в файл и использовать templateUrl, как и для любой другой директивы. –