[英]how to call angularjs function which is appended in div
$scope.showtbleoption = function(id)
{
console.log(id);
$("#showoption").empty();
$("#showoption").append('<button class="btn btn-info" ng-click="editrc(id)">');
};
如何在angularjs控制器中调用editrc()函数?
使用jQuery追加原始DOM会使angular指令编译。 你必须使用$compile
服务,你将首先$compile
该DOM,然后在DOM树中注入该DOM。 $compile
是要求DOM的API函数(返回函数),然后你可以通过传递$scope
来针对特定context
进行求值来再次调用该函数。 $compile
API方法将负责编译DOM和更新bindings
所有指令。
在下面的情况下, id
值不会直接在$scope
可用,您可以将其存储在范围变量中,也可以通过字符串连接传递它。
var compiledDom=$compile('<button class="btn btn-info" ng-click="editrc('+id+')">')($scope);
$("#showoption").append(compiledDom);
而不是使用jQuery附加,使用$compile
服务将其绑定到dom。 像这样:
$scope.domEle = $compile('<button class="btn btn-info" ng-click="editrc(id)">')
并在HTML中调用如下:
{{ domeEle }}
并在控制器中定义editrc函数,如下所示:
$scope.editrc = function(val){
}
您可以使用ng-bind-html指令动态地将html绑定到模板。 但是,你必须通过$compile(<html>)
使用$ compile $compile(<html>)
。 编译后的html中提到的任何表达式都可以调用您在控制器中提供的定义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.