Предположим, у меня есть несколько директив: «драма», «комедия» и по какой-то причине у них много разных свойств, поэтому не обязательно иметь «фильм», директивы. Есть ли способ динамически оценивать директиву на основе переменной области? Что-то вроде этого:Угловая JS - динамически оценивать директиву
<{{movieType}} movie="{{movie}}"></{{movieType}}>
Где бы оценить что-то вроде этого:
<comedy movie={{movie}}></comedy>
Я новичок в Угловое, поэтому простите за сумасшедшие идеи.
UPDATE: На самом деле просто нашел аккуратную статью о том же проблемы/решения: http://onehungrymind.com/angularjs-dynamic-templates/
В основном автор имеет одну директиву, но свопы из шаблонов на основе запроса:
var getTemplate = function(contentType) {
var template = '';
switch(contentType) {
case 'image':
template = imageTemplate;
break;
case 'video':
template = videoTemplate;
break;
case 'notes':
template = noteTemplate;
break;
}
return template;
}
return {template: getTemplate(type)};
Вы не можете этого сделать, вам нужно будет скомпилировать элемент и добавить его. – PSL
Итак, тогда я должен просто создать директиву «фильм» и установить ng-переключатель для разных типов фильмов и вложенных директив для каждой категории фильмов? –
Каковы различные варианты, которые могут быть переданы? Они все еще фильмы, не так ли? Я бы все же исследовал возможность наличия единственной директивы кино и передачи всех параметров, тогда вы можете ng-if или ng-show определенные разделы, основываясь на том, есть ли параметры ввода. Я предполагаю, что они будут настолько похожи, что сохранение отдельных директив будет кошмаром для обслуживания. –