У меня есть динамическая веб-страница, созданная предыдущими записями, сделанными пользователем. Это означает просмотр списка возможных входных данных, которые они могли выбрать, а затем добавление их в html в директиве.
Чтобы все мои ng-теги работали, мне нужно запустить этот большой кусок html через $compile, чтобы они все еще работали. Это работает нормально, теперь моя проблема заключается в том, что я пытаюсь создать более сложные поля, в которых используются настраиваемые директивы или классы jquery, которые просто отказываются работать должным образом после того, как были пропущены через $compile.
Например -
<div data-j-signature="obj.Test" data-pen-color="#0000ff" data-line-color="#00000" style="border:1px #000 solid;"></div><div class="col-sm-11">
Здесь используется хорошо используемая угловая библиотека под названием JSignature, и она будет нормально работать, если ее разместить где-нибудь на моей веб-странице, но не при выполнении процесса компиляции.
Я не обязательно ищу ответ для этой конкретной проблемы, поскольку я чувствую, что это будет постоянная проблема с большим количеством полей, которые я пытаюсь добавить. Есть ли у кого-нибудь общие советы о том, как обойти это? Есть ли альтернатива, которую я не вижу?
Вот мой html -
<div ng-repeat="Question in Questions">
<question-type></question-type>
</div>
Вот важная часть того, что моя директива делает в конце после объединения множества строк html вместе:
var compiledHtml = $compile(stringOfHtml)(scope);
element.append(compiledHtml);
JSignature
тоже jQuery. Если вы оборачиваете вокруг него директиву, это, вероятно, предполагает, что элемент уже присутствует в DOM, но вы вставляете его после компиляции. - person a better oliver   schedule 24.07.2015