javascript - 使用 .innerHTML 创建 <button>。单击时,按钮不会调用 Angular Controller 中的函数

标签 javascript jquery html angularjs innerhtml

使用 Angular,我正在创建一个倒计时器应用程序。当计时器到达某一点时,计时器停止,播放通知声音,并创建一个带有 buttondiv

像这样...

HTML:

<div id='test'></div> 

Javascript:

 document.getElementById('test').innerHTML= '<div id="break-div"><button id="4"ng-click="timerControl.resetTimer()">Back to work!</button></div>'

Angular timerControl Controller 内部的resetTimer()函数

this.resetTimer = function(){
    console.log(111)
    _this.resetWorkFlow = true;
}

它创建的按钮足够好,但是当我单击它来调用 timerControl Angular Controller 内的 resetTimer() 函数时,它甚至没有进入函数,否则 console.log(111) 将在 Google Chrome 的 Google 开发工具中显示 111。看起来这可能是 DOM 或类似问题的问题。我尝试使用 jQuery ,但似乎没有太多关于此的信息。有人遇到过这种情况吗?

最佳答案

Angular 不知道您执行了 .innerHTML 赋值。您必须通过调用 $compile 来告诉它。请参阅文档:https://docs.angularjs.org/api/ng/service/$compile

这里有一个关于该过程的快速教程: http://onehungrymind.com/angularjs-dynamic-templates/

关于javascript - 使用 .innerHTML 创建 <button>。单击时,按钮不会调用 Angular Controller 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35469930/

相关文章:

javascript - Node 命令行详细输出

javascript - Angular2 第二天得到

javascript - 使用 RequireJS 加载 jQuery - 哪个更好,本地版本还是 CDN 版本?

javascript - 附加 HTML block jQuery

javascript - 在 Bootstrap 中更改断点处的元素位置

Javascript:链接 jQuery 等元素

javascript - 使用 innerHTML 加载 iframe 有什么问题吗?

javascript - 如何找到内部元素的宽度

html - 为什么我的文本元素总是 100%? | CSS

html - php 中的浏览器问题?