Настройка шаблона в директиве
=============================

У меня есть форма, которая использует разметку из Bootstrap, как показано ниже:

Там много стандартного кода, который я хотел бы привести к новой директиве - ввод формы, например:

генерирует:

У меня так много работает через простой шаблон.

Однако, когда я прихожу, чтобы добавить более продвинутые функциональные возможности, я застреваю.

How can I support default values in the template?

Я хотел бы раскрыть "тип" параметр в качестве необязательного атрибута в моей директиве, например:

Однако, если ничего не указано, я бы хотел по умолчанию`"text"`, Как я могу поддержать это?

How can I customize the template based on the presence / absence of attributes?

Я также хотел бы иметь возможность поддерживать "требуемый" атрибут, если он присутствует.
Например:

Если`required` присутствует в директиве, я хотел бы добавить ее к сгенерированному`<input />` в выводе, и игнорировать это в противном случае. Я не уверен, как этого добиться.

Я подозреваю, что эти требования, возможно, вышли за рамки простого шаблона и должны начать использовать фазы предварительной компиляции, но я не знаю, с чего начать.

 предложенное Миско, но в моей ситуации некоторые атрибуты, которые нужно было объединить с моим шаблоном html, сами были директивами.

 К сожалению, не все директивы, на которые ссылается полученный шаблон, работали правильно. У меня не было достаточно времени, чтобы погрузиться в угловой код и выяснить причину, но я нашел обходной путь, который потенциально мог бы помочь.

 Решением было переместить код, создающий шаблон html, из функции компиляции в функцию шаблона. Пример на основе кода сверху:





 к сожалению, не совсем работают. В частности, этап компиляции не имеет доступа к области, поэтому вы не можете настроить поле на основе динамических атрибутов. Использование этапа связывания обеспечивает наибольшую гибкость (с точки зрения асинхронного создания dom и т. Д.). Приведенный ниже подход учитывает следующе

 Я создал [суть](https://gist.github.com/joesavona/6985935) с более полным кодом и[записат](http://justandsimply.com/blog/2013/10/14/dynamic-forms-in-angularjs/) подхода.



 

 Я очень плохо знаком с AngularJS, поэтому хотел бы увидеть лучшие / альтернативные решения.

 Пример использования: