Javascript AngularJS ng单击未从JQuery代码中的动态按钮触发

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 ==

在jquery代码中,我试图在作用域中添加一个函数,然后从动态创建的按钮调用该函数,但没有调用ng 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()
。它成功了。请加上它作为答案。