在角项目中使用$
前言我相信当您开始使用角时,您一定遇到了$($)方法。从表面上看,这就像是一种帮助您更新数据的方法。它为什么存在我们应该怎样使用它下面的话不要多说,一起来看看详细的介绍。
Javascript的执行顺序
javascript单线程操作代码根据代码片段序列对每个代码块从运行到结束都不会中断,这就是为什么浏览器被阻塞,经常有一部分操作,从而导致所有其他代码冻结。
每当有一个耗时的任务,如等待一个单击事件,等待Ajax请求时,我们将设置一个回调函数,当单击事件触发或定时器完成时,将创建一个新的Javascript旋转,并执行回调函数。
例如:
VAR按钮= document.getelementbyid('clickme);
功能buttonClicked(){
警报(单击按钮);
}
Button.addEventListener(听到咔哒声,buttonClicked);
功能timercomplete(){
警报('timer完成);
}
setTimeout(timercomplete,2000);
当Javascript代码开始运行,你先找到一个按钮,添加一个点击监听事件,并设置一个超时。浏览器将在代码完成后更新Web和接受用户的输入。
如果浏览器检测到一个新的单击事件,他将开始转向执行buttonClicked函数。这个阶段结束时,该函数的执行。
2000毫秒之后,浏览器创建一个进程来执行timercomplete。两者之间,页面重画和输入收到。
如何更新绑定数据
角提供了一个绑定Javascript代码的接口,我们可以使用任何角度数据来绑定,并在底部运行Javascript,并检查数据更新。
数据更改检查实际上是美元结算功能,但通常我们不直接使用美元结算功能。相反,我们使用$或$函数将表达式或函数作为参数来接收,并调用摘要来更新监视器。
然后,我们真的希望什么时候调用$应用程序,事实上,角几乎所有的代码都添加在$应用程序,如NG点击,初始控制器,HTTP回调操作,在这方面,你不需要调用$应用程序,并重复调用将导致错误。
所以,当你运行一个新的阶段,而这一部分不属于角库,你需要使用apply.there美元是关于setTimeout代码。经过2000毫秒的延迟,代码进入了一个新阶段。但是角不知道数据被更新了,所以更新不会显示出来。
函数Ctrl($范围){
scope.message美元=等待2秒更新;
setTimeout(){()函数(
scope.message美元=时间;
不知道更新范围 / / AngularJS美元
},2000);
}
为了方便大家使用,角提供了一个超时而不是美元相当于调用setTimeout,默认情况下它将美元。
如果您在代码中使用除http之外的ajax调用,您应该使用$范围。除了与NG以外的侦听器一起应用同步绑定,或在超时之外添加同步绑定。
总结
以上就是本文的全部内容。希望本文的内容能给大家的学习或工作带来一定的帮助。如果有任何疑问,您可以留言交流,谢谢您的支持。