动态AngularJS html中的函数

动态AngularJS html中的函数,angularjs,Angularjs,我正在创建一个论坛,其中的回复是用AngularJS ng repeat编写的。 回复可以包含链接,在所有链接上,我添加了一个ng单击。未触发此ng click 我猜这是因为当链接写入dom时,AngularJS已经完成了连接函数的工作。有什么解决办法吗 以下是一个例子: 谢谢 Rasmus这是一个简单的案例演示: 这个想法是,您需要使用$compile让angular知道您正在添加动态函数。您的代码是?你是如何添加ng点击的?如果你需要帮助,你需要发布一些代码,否则你只会得到否决票。。。ng

我正在创建一个论坛,其中的回复是用AngularJS ng repeat编写的。 回复可以包含链接,在所有链接上,我添加了一个ng单击。未触发此ng click

我猜这是因为当链接写入dom时,AngularJS已经完成了连接函数的工作。有什么解决办法吗

以下是一个例子:

谢谢
Rasmus

这是一个简单的案例演示:


这个想法是,您需要使用$compile让angular知道您正在添加动态函数。

您的代码是?你是如何添加ng点击的?如果你需要帮助,你需要发布一些代码,否则你只会得到否决票。。。ng在重复中单击应该可以,所以您没有正确地使用Angular。请看这个答案-@LeeWillis这确实有效。ThanksI不使用JavaScript添加元素。这是一个完整的正文,其中包含链接。我可以用类似的方法吗?正如我所说的,JSFIDLE只是给了你一个做什么的想法,而不是你的案例。我认为您仍然可以使用$compile。试一试,让我们知道。我使用了李威利斯建议的指令,但这似乎也起作用。谢谢。我看了一下:,它需要更改html和js,而且太复杂了。我所要做的就是在我的项目中包含该指令,并使用

而不是

var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope, $sce) {
    $scope.htmlBody = '<a href="http://www.google.com" ng-click="testmethod()" target="_blank">This does not work</a>';

    $scope.toTrustedHtml = function(htmlCode) {
      return $sce.trustAsHtml(htmlCode);
    };

    $scope.testmethod = function()
    {
       alert('yes');
    }
});


<body ng-controller="MainCtrl">
   <a href="http://www.google.com" ng-click="testmethod()" target="_blank">This works</a>
   <br /><br />
   <p ng-bind-html="toTrustedHtml(htmlBody)"></p>
</body>