Javascript ng使用附加功能时单击不工作

Javascript ng使用附加功能时单击不工作,javascript,angularjs,ionic-framework,Javascript,Angularjs,Ionic Framework,我试图在创建动态元素时使用ng click调用函数,但迄今为止没有成功。这是我的密码 $scope.myfunc = function(){ alert("anything") } var divtoappend=angular.element( document.querySelector('#slist')); divtoappend.append("<button class = 'optv' ng-click='myfunc()'>" +mybutton+ "<

我试图在创建动态元素时使用
ng click
调用函数,但迄今为止没有成功。这是我的密码

$scope.myfunc = function(){
    alert("anything")
}

var divtoappend=angular.element( document.querySelector('#slist'));
divtoappend.append("<button class = 'optv' ng-click='myfunc()'>" +mybutton+ "</button>");
...
$scope.myfunc=function(){
警惕(“任何事”)
}
var divtoappend=angular.element(document.querySelector(“#slist”);
追加(“+mybutton+”);
...

单击时不会抛出错误,也不会发生任何事情。您需要编译动态生成的HTML,使其在AngularJS的范围内。 只需在append方法内部编译,如

divtoappend.append($compile("<button class = 'optv' ng-click='myfunc()'>" +mybutton+ "</button>")($scope));
divtoappend.append($compile(“+mybutton+”)($scope));
在此之前,在控制器中注入
$compile


我已经创建了一个plunkr。请看这个

您需要使用$compile按如下方式编译DOM元素

$compile(divtoappent)(scope);

在注入DOM树之前,必须使用
$compile
API编译DOM,如下所示

divtoappend.append($compile("<button class = 'optv' ng-click='myfunc()'>" +mybutton+ "</button>")($scope));
divtoappend.append($compile(“+mybutton+”)($scope));

通过编译DOM,angular将所有HTML级别的绑定放入
$$scope
$$watchers
数组中,以确保UI在每个摘要周期都是最新的。

在将DOM注入DOM树之前,使用
$scope
编译DOM。像
divtoappend.append($compile(“+mybutton+”)($scope))
正如@PankajParkar所说,也注入了
$compile
服务。谢谢@PankajParkar,你应该将此作为一个答案发布,这样我可以验证它,其他人可能会发现这一点很有帮助。在问题评论和答案部分发布相同内容的原因是什么?@AKA根据我在评论中要求的OP做的。。否则我就不会那样做了……)