我正在尝试使用ng-click
在创建动态元素时调用函数但到目前为止没有成功。这是我的代码
$scope.myfunc = function(){
alert("anything")
}
var divtoappend=angular.element( document.querySelector('#slist'));
divtoappend.append("<button class = 'optv' ng-click='myfunc()'>" +mybutton+ "</button>");
...
没有错误,点击
没有任何反应答案 0 :(得分:2)
您需要编译动态生成的HTML,以使其属于AngularJS的范围。 只需编译内部附加方法,如
divtoappend.append($compile("<button class = 'optv' ng-click='myfunc()'>" +mybutton+ "</button>")($scope));
在您的控制器中注入$compile
之前。
我创建了一个plunkr,请看plunkr link
答案 1 :(得分:2)
在注入DOM树之前,你必须使用$compile
API编译DOM,如下所示。
divtoappend.append($compile("<button class = 'optv' ng-click='myfunc()'>" +mybutton+ "</button>")($scope));
通过编译DOM angular会将所有HTML级别绑定放在$$watchers
$scope
数组中,以确保UI在每个摘要周期都是最新的。
答案 2 :(得分:0)
您需要使用$ compile
编译DOM元素$compile(divtoappent)(scope);