Суть вопроса в следующем:
имеется такой 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?