Как вызываются директивы, если элемент, содержащий директиву, добавляется динамически через угловой контроллер?
После некоторого поиска я не нашел много информации в этой плохой практике. Допустим, у меня есть контроллер, который ведет себя так (я знаю, что это должна была быть директива и что в контроллерах мы никогда не выполняем манипуляции с DOM, но мне любопытно ...)
angular.module('app').controller('test', ['$scope',
function($scope) {
$scope.addElement = function() {
var input = document.createElement('input');
input.type = "text";
//directive
input.setAttribute("autosize","autosize");
input.setAttribute("ng-model","dummy");
//[ append code ]
input.focus();
}
}
]);
и давайте предположим, что у меня есть кнопка, которая вызывает addElement () с помощью ng-click. Как действующая директива autosize будет «запущена» для фактической работы. В отличие от этого, элементы ввода, которые уже существуют и имеют директиву autosize, работают нормально. Я также пробовал $ scope.apply (function () {}); вокруг кода с отступом, который создает элемент ввода и вызывает TypeError: undefined не является функцией: /