@timofy

Не срабатывает функция при клике по элементу с атрибутом ng-click?

Суть вопроса в следующем:
имеется такой html-код:

<span ng-click="childComment()">Comment 1</span>

и примерно такой javascript-код:

var commentsApp = angular.module('commentsApp', []);
commentsApp.controller("commentsController", function ($scope, $http, $timeout) {

       $scope.childComment = function () {
              console.log('Ok');
       };
       $timeout(function () {
             var span2 = angular.element('<span>')
                            .attr('ng-click', 'childComment()').text('Comment 2');
        }, 1000);
});


В браузере соответственно появляются два span-элемента: "Comment 1" и "Comment 2". При клике по элементу "Comment 1" функция $scope.childComment() срабатывает и в консоли выводится "Ок", а при клике по элементу "Comment 2" ничего не происходит и в консоли браузера ничего не появляется.
Поначалу я думал, что элемент "Comment 2" попадает не в ту область видимости, в которой находится функция $scope.childComment(), но в таком случае думаю, что браузер выдал бы ошибку, что такой функции не существует.
В чем может быть причина? Может в использовании сервиса $timeout?
  • Вопрос задан
  • 229 просмотров
Решения вопроса 1
Само по себе добавление аттрибута ничего не говорит ангуляру. Нужно либо: использовать $compile на указанном куске DOM, либо вставлять DOM через ангуляр(ng-bind-html)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы