【问题标题】:Angular - detecting when all form elements have been loaded?Angular - 检测所有表单元素何时加载?
【发布时间】:2014-08-25 22:12:22
【问题描述】:

我正在尝试检测页面上的所有表单元素(包括下拉菜单)何时被填充,然后触发初始化这些元素上的插件的函数。

现在我正在使用一个非常丑陋的延迟功能,但它显然会根据加载时间而有所不同。我还有多个控制器负责渲染页面上的各种表单字段。

我尝试在其中一个渲染函数之后调用插件,但从渲染发生和填充选择框时仍然存在可变延迟。

我正在考虑在

上添加一个 ng-model,但我怎么知道它何时完成填充?

所以基本上我想要一个可靠的方法:

  1. 页面加载所有表单元素(包括填充的选择框)

  2. 调用我的插件的事件触发器

似乎应该有一个我不知道的简单解决方案。

提前致谢。

【问题讨论】:

  • 如果你把 fiddle 或 plunker 放在一起,帮助你会容易得多。它可以是任何数量的事情,或者只是对过程的不同思考方式。

标签: javascript jquery angularjs forms


【解决方案1】:

$evalAsync 是您的朋友,如果您不想使用超时,并且在从服务器取回数据后尝试触发函数...

要更好地理解这一点,请观看this videoread this

希望你觉得这很有用

【讨论】:

  • 您好,谢谢您的回复。我能够检测到何时从服务接收到数据,但是需要花费额外的时间将该数据填充到表单的各种选择下拉列表中。我希望有一种方法可以检测何时填充所有表单元素并且然后才触发我的功能。
  • 警告这是一个黑客。您可以做的是,在填充每个表单元素后调用一个函数,该函数计算填充的元素数,当元素的数量与表单元素的总数匹配时,最后调用您要调用的函数。
  • 表单元素的数量可能会有所不同。由于我正在处理企业规模的应用程序,我不确定这种方法是否会被批准。嗯..不知道为什么这这么难。我可能会遗漏一些我还不知道的角度函数。
  • 你知道ng-submitng-disable$error这些可以帮助你阅读文档。
猜你喜欢
  • 1970-01-01
  • 2017-06-10
  • 1970-01-01
  • 2018-05-15
  • 1970-01-01
  • 2017-08-17
  • 1970-01-01
  • 1970-01-01
  • 2014-06-15
相关资源
最近更新 更多