Javascript 创建<;按钮>;使用.innerHTML。单击时,按钮不为';角度控制器中的t调用函数

Javascript 创建<;按钮>;使用.innerHTML。单击时,按钮不为';角度控制器中的t调用函数,javascript,jquery,html,angularjs,innerhtml,Javascript,Jquery,Html,Angularjs,Innerhtml,使用Angular,我正在创建一个倒计时应用程序。当计时器到达某一点时,计时器停止,播放通知声音,并创建带有按钮的div 像这样…… HTML: <div id='test'></div> 它创建的按钮足够好,但当我单击它调用timerControl角度控制器中的resetTimer()函数时,它甚至没有进入该函数,否则console.log(111)将在我的Google Chrome Google开发工具中显示111。似乎这可能是DOM或类似的问题。我尝试使用jQu

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

像这样……

HTML:

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

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

只需使用Angular(无需jQuery)和在视图控制器中设置的变量就可以做到这一点

您可以使用ng if指令处理按钮的创建,并通过控制器变量(下面的控制器范围为vm)管理按钮创建的条件。然后在视图的控制器中调用resetTimer()函数

例如:

<div ng-if="vm.resetWorkFlow">
    <button id="4" ng-click="vm.resetTimer()">Back to work!</button>
</div>

回去工作!

只需使用Angular(无需jQuery)和在视图控制器中设置的变量就可以做到这一点

您可以使用ng if指令处理按钮的创建,并通过控制器变量(下面的控制器范围为vm)管理按钮创建的条件。然后在视图的控制器中调用resetTimer()函数

例如:

<div ng-if="vm.resetWorkFlow">
    <button id="4" ng-click="vm.resetTimer()">Back to work!</button>
</div>

回去工作!

Angular不知道您做了
.innerHTML
作业。您必须通过调用
$compile
来告诉它。见文件:

这里有一个关于该过程的快速教程:

Angular不知道您做了
.innerHTML
作业。您必须通过调用
$compile
来告诉它。见文件:

这里有一个关于该过程的快速教程:

@tangentstrom谢谢你为我指明了正确的方向。你把指令放在哪里?在模板的相应控制器中?@tangentstrom同样,我以前从未发出过指令,似乎没有什么真正有意义的:/另外,我也不太懂这些文件。$compile到底做什么呢?
$compile
服务是存储
ng click
指令的JavaScript的地方。当您使用
$compile
服务时,它会实例化存储的JavaScript并将其链接到您指定的范围。@谢谢您为我指明了正确的方向。你把指令放在哪里?在模板的相应控制器中?@tangentstrom同样,我以前从未发出过指令,似乎没有什么真正有意义的:/另外,我也不太懂这些文件。$compile到底做什么呢?
$compile
服务是存储
ng click
指令的JavaScript的地方。当您使用
$compile
服务时,它会实例化存储的JavaScript并将其链接到您指定的范围。谢谢您的建议,但这不起作用。我认为这与我在页面上显示的内容在DOM上是动态的(因为我使用的是innerHTML())有关,angular不知道该按钮的存在是因为相应的断开连接…谢谢你的建议,但这不起作用。我认为这与我显示到页面上的内容在DOM上是动态的(因为我使用的是innerHTML()),angular不知道该按钮的存在是因为相应的断开连接。。。
<div ng-if="vm.resetWorkFlow">
    <button id="4" ng-click="vm.resetTimer()">Back to work!</button>
</div>