AngularJS ng-click () не работает при динамическом вызове функцией .append ('') в контроллере

0

введите описание изображения здесь. Я пытаюсь добавить динамические элементы HTML, которые имеют AngularJS ng-click, но не работают. Я пробовал {{2+2}} в iEl.append(<div>{{2+2}}<div>), но он не работает.

Что я делаю не так?

$scope.appendContent = function() {
    var iEl = angular.element( document.querySelector( '#med2' ) );

    iEl.append('<div class="row well"  ng-controller=Directive id="med1"> <div class="col-sm-12"  > <p>Medication {{2+2}}</p> <div class="col-sm-4"> Medicine <div class="well" dragular="{"classes":{"mirror":"custom-green-mirror"},"nameSpace":"same"}"></div> </div> <div class="col-sm-3"> Frequency <div class="well" dragular="{"classes":{"mirror":"custom-green-mirror"},"nameSpace":"same"}"></div> </div> <div class="col-sm-4"> Days <div class="well" dragular="{"classes":{"mirror":"custom-green-mirror"},"nameSpace":"same"}" ng-click=appendContent()></div> </div> <div class="col-sm-1"> <button class="close cursorDefault" ng-click="removeDIV()">X</button> </div> </div>');
};

Я хочу, чтобы html выглядел так, автоматически добавляйте, когда когда-либо заполняете значение.

  • 7
    Вы делаете это неправильно .. Абсолютно. Читайте stackoverflow.com/questions/14994391/…
  • 0
    Что именно не работает? Вы получаете какие-либо ошибки в консоли?
Показать ещё 2 комментария
Теги:
angularjs-ng-click

2 ответа

0

использование:

$ scope.appendContent = function() {

$ scope. $ apply (function() {

    var iEl = document.getElementById('med2');
    iEl.append('content') 

});

}

0

Никогда не манипулируйте DOM в Angular, если его можно избежать (за исключением случаев, когда вы находитесь в директиве). Вместо того чтобы использовать querySelector и angular.element, вы должны использовать ng-repeat директивы тег внутри вашей #med2 тега в вашем HTML (и, вероятно, можно удалить идентификатор, если он не используется в другом месте). Этот тег ng-repeat будет включать HTML-код, текущий в вашей строке JavaScript (который не должен быть в вашем исходном тексте JavaScript). Затем, когда appendContent вызывается, вместо добавления HTML к элементу напрямую, вы должны добавить объект в массив, который представляет базовые данные, контролируемые ng-repeat.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню