Сообщение от desperado
|
Мне интересен сам процесс засовывания в директиву любых других шаблонов по условию и передачу всяких переменных. Можно какой то примерчик такой директивы?
|
В директиву под рукой нет. Но прынцып тот-же, плюс-минус мелкие тонкости. Вот кусок конфигурации маршрутизатора (ui-router):
.state('LpWork.Memorials.Main', {
url: "/:pgName",
controller: 'PmtMainCtrl',
*!*
templateUrl: function($stateParams){
switch ($stateParams.pgName) {
case 'main':
case null:
{ return ""; }
// { return "partials/memorials-Home.html"; }
case 'card' : return "partials/memrCard-Work.html";
default : return "partials/memorials-Work.html";
*/!*
}
}
})
Пометил, где по условию выбирается шаблон. templateUrl берёт на вход либо строку либо функцию возвращающую строку. Заметь, точно так же (по условию) можно подсунуть контроллер (заранее сконфигурированный), т.е. у меня сейчас имя контроллера задано строкой, а могла бы быть функция, возвращающая строку.
Цитата:
|
Что бы типа в контроллере проверять данные в скоп, и в зависимости от них, подсовывать шаблон в директиву.
|
А вот тут тонкость - в контроллере директивы выбирать шаблон не получится. Только в функции компиляции, чтоб вовремя скомпилировать всё
содержимое ($transclude) директивы. У меня примера готового нет, но можешь глянуть как это делается в стандартных директивах (типа ng-if). На англо-сайте в каждом разделе api-доков есть кнопочка "глянуть исходник", с переадресацией точно (ну почти
) к нужному месту исходника. Это удобнее, чем качать целиком исходники и там рыться.