Javascript AngularJS ng单击未从JQuery代码中的动态按钮触发
在jquery代码中,我试图在作用域中添加一个函数,然后从动态创建的按钮调用该函数,但没有调用ng click:Javascript AngularJS ng单击未从JQuery代码中的动态按钮触发,javascript,jquery,angularjs,angularjs-ng-click,Javascript,Jquery,Angularjs,Angularjs Ng Click,在jquery代码中,我试图在作用域中添加一个函数,然后从动态创建的按钮调用该函数,但没有调用ng click: $(document).on("click", ".inlinelbl", function () { var $this = $(this); var self = this; var localScope = angular.element(self).scope(); if (localScope.InlineSave_Click ==
$(document).on("click", ".inlinelbl", function () {
var $this = $(this);
var self = this;
var localScope = angular.element(self).scope();
if (localScope.InlineSave_Click == undefined) {
localScope.InlineSave_Click = function (elem, event) {
//function body
}
}
if (localScope.InlineCancel_Click == undefined) {
localScope.InlineCancel_Click = function (elem, event) {
//function body
}
var html = "<span class='d'><button class='btn btn-default' ng-click='InlineSave_Click(this, event)' style='display:inline-block;'></button>";
html += "<button class='btn btn-default' ng-click='InlineCancel_Click()' style='display:inline-block;'></button></span>";
var injector = angular.element(document.getElementById('app')).injector();
var $compile = injector.get('$compile');
var compiledHtml = $compile(html)(localScope);
$this.closest("span.s-element").removeClass("hide");
$this.closest("span.s-element").append($(compiledHtml[0].outerHTML));
}
$(document).on(“click”,“.inlinebl”,函数(){
var$this=$(this);
var self=这个;
var localScope=angular.element(self.scope();
if(localScope.InlineSave_Click==未定义){
localScope.InlineSave\u Click=函数(元素、事件){
//功能体
}
}
if(localScope.InlineCancel\u Click==未定义){
localScope.InlineCancel\u Click=函数(元素、事件){
//功能体
}
var html=“”;
html+=“”;
var injector=angular.element(document.getElementById('app')).injector();
var$compile=injector.get(“$compile”);
var compiledHtml=$compile(html)(localScope);
$this.closest(“span.s-element”).removeClass(“hide”);
$this.closest(“span.s-element”).append($(compiledHtml[0].outerHTML));
}
}))
使用chrome对angularjs的扩展,我检查了带有按钮的localscope是否具有这两种功能
我错过了什么
期待中的感谢 而不是从这一行的编译输出中获取HTML
$this.closest("span.s-element").append($(compiledHtml[0].outerHTML));
按原样追加已编译的输出
$this.closest("span.s-element").append(compiledHtml);
之后可能需要调用
localScope.$apply()
。尝试将最后一行更改为$this.closest(“span.s-element”).append(compiledHtml)代码>。将HTML从编译结果中取回有点违背了编译它的目的。您可能还需要在之后调用localScope.$apply()
。它成功了。请加上它作为答案。