Всем привет!
Есть следующая задача:
В SPA на AngularJS в конкретном контроллере нужно динамически объявить директиву, полученную с сервера с помощью AJAX.
На сервере у меня хранятся директивы, описывающие формы ввода (более 3000 форм).
Точнее, директиву я объявляю один раз, но ее реализацию хочу задавать динамически на основе полученных данных.
Пробовал следующее:
// метод контроллера
$scope.add = function(ev,attrs){
//ajax вызов
.success(function (data, status, headers, config) {
// получили директиву с сервера
var exFormDirective = data.newForm;
// добавили ее к модулю
myApp.directive('exForm', exFormDirective );
// динамически создали элемент
var exFunction = angular.element(document.createElement('ex-Form'));
// скомпилировали
var el = $compile( exFunction )( $scope );
// Добавили созданный элемент на страницу
angular.element(document.getElementById('exTempleate')).append(exFunction);
Ошибок никаких не получаю при выполнении, но и директива динамически не создается ((
Если то же самое сделать с заранее описанной и подключенной директивой (т.е. подключать не в контроллере, а стандартно) - то все работает.
Но так как директив очень много - то все оформить заранее представляется невыполнимой задачей.
Предполагаю, что дело в
// добавили ее к модулю
myApp.directive('exForm', exFormDirective );
но что именно не так, может кто-то подскажет ?