我正在构建一个表单,其中我的字段可以具有基于其他字段的强制条件。我使用的是像
这样的东西RESTORE DATABASE database FROM DISK = 'D:/FULL' WITH NORECOVERY, REPLACE
我的每个字段都有效。每当用户改变一些输入时,整个for的所有字段都被重新评估。问题是它似乎为每个字段多次调用这个evaluateCond函数? 这是一个问题,因为我稍后将有条件调用服务器来获取验证所需的一些数据,当然这个调用只应出于性能原因而进行一次。我在想是否应该制作某种单例并在启动时初始化一个布尔变量,这样当它进行时,其他对它的调用将被阻塞,直到该布尔值被反转为止。一种原始锁定机制。 然而,这似乎是一种丑陋的解决方法,我想知道是否有人有其他想法?
答案 0 :(得分:1)
该函数被多次调用,因为angular支持双向数据绑定。当范围变量发生更改时,$digest
函数会触发相应的侦听器,重新计算值并重新呈现视图。
在您的情况下,您可以在输入字段上使用debounce
模型选项,以便模型仅在指定的时间间隔后更新,这样您就可以限制与ng-required
关联的函数调用的频率。 / p>
示例强>
<input type="text" name="userName"
ng-model="user.name"
ng-model-options="{ debounce: 1000 }" />