Javascript 当Angular有';已完成';
我所说的“完成”是指所有数据绑定都已完成,Angular javascript已无可运行(直到用户和DOM交互) 我需要调用一个我已经拥有的javascript函数(fwiw,只需切换几个div的显示) 我尝试过的 我想尝试避免使用超时: 角度所需的时间是任意的,对我来说,要准确地使用时间间隔取决于太多的因素 我也尝试了Javascript 当Angular有';已完成';,javascript,angularjs,Javascript,Angularjs,我所说的“完成”是指所有数据绑定都已完成,Angular javascript已无可运行(直到用户和DOM交互) 我需要调用一个我已经拥有的javascript函数(fwiw,只需切换几个div的显示) 我尝试过的 我想尝试避免使用超时: 角度所需的时间是任意的,对我来说,要准确地使用时间间隔取决于太多的因素 我也尝试了app.run(function()…,但它运行得太早了 编辑(澄清) 将此场景想象为2个div 某些内容 及 {{someContent}} 在页面加载时(最初),用户将看到
app.run(function()…
,但它运行得太早了
编辑(澄清)
将此场景想象为2个div
某些内容
及
{{someContent}}
在页面加载时(最初),用户将看到{{someContent}}
,直到Angular“完成”。我想隐藏这个角度div,只显示静态div,然后在{someContent}之后交换它们(即静态变为隐藏,角度变为可见)
已经呈现出来。我想做的事情确实很简单,ng show
听起来可能是一个解决方案,但我不确定如何使用它。如果app.run(function(){…})
太早了,您不想使用$timeout
也许您应该重构您想要调用的javascript函数,并以有角度的方式执行
如果只是切换div的可见性,请考虑使用<代码> ng/ng/ng隐藏< /c>。您也可以使用<代码> ng,如果有条件地删除或重建DOM树的一部分。这取决于您的函数的用途,也许自定义指令适合您的情况。
如果要在填充某些变量数据后显示这些数据,请执行以下示例:<div ng-if='myVar'>
<span>{{myVar}}</span>
</div>
{{myVar}}
根据编辑的问题更新:
<div ng-if='!myVar' class='static'>
<span>STATIC CONTENT</span>
</div>
<div ng-if='myVar' class='angular'>
<span>{{myVar}}</span>
</div>
静态内容
{{myVar}}
再次说明,ng show/ng hide
可能会起作用,但不要忘记它们只会切换元素的可见性。ng if
将在条件验证或未验证的情况下删除/重新创建元素。ifapp.run(function(){…})
太早了,您不想使用$timeout
也许您应该重构您想要调用的javascript函数,并以有角度的方式执行
//using ng-if
<div ng-if="!someContent" class="static">SOME CONTENT</div>
<div ng-if="someContent" class="angular">{{ someContent }}</div>
//using ng-hide/show
<div ng-hide="someContent" class="static">SOME CONTENT</div>
<div ng-show="someContent" class="angular">{{ someContent }}</div>
如果只是切换div的可见性,请考虑使用<代码> ng/ng/ng隐藏< /c>。您也可以使用<代码> ng,如果有条件地删除或重建DOM树的一部分。这取决于您的函数的用途,也许自定义指令适合您的情况。
如果要在填充某些变量数据后显示这些数据,请执行以下示例:<div ng-if='myVar'>
<span>{{myVar}}</span>
</div>
{{myVar}}
根据编辑的问题更新:
<div ng-if='!myVar' class='static'>
<span>STATIC CONTENT</span>
</div>
<div ng-if='myVar' class='angular'>
<span>{{myVar}}</span>
</div>
静态内容
{{myVar}}
再次说明,ng show/ng hide
可能会起作用,但不要忘记它们只会切换元素的可见性。ng if
将在条件验证或未验证的情况下删除/重新创建元素。//使用ng if
//using ng-if
<div ng-if="!someContent" class="static">SOME CONTENT</div>
<div ng-if="someContent" class="angular">{{ someContent }}</div>
//using ng-hide/show
<div ng-hide="someContent" class="static">SOME CONTENT</div>
<div ng-show="someContent" class="angular">{{ someContent }}</div>
一些内容
{{someContent}}
//使用ng隐藏/显示
一些内容
{{someContent}}
//如果
一些内容
{{someContent}}
//使用ng隐藏/显示
一些内容
{{someContent}}
这闻起来像是反模式。为什么要切换那些div?在上下文中使用指令可能更有意义
无论如何,如果您认为这样做有充分的理由,可以使用$applyAsync(yourFunction)
计划函数运行
$applyAsync
将对稍后执行的函数进行排队。如果在$scope
初始化过程中放置该队列,则函数将在其余观察器执行后运行。这闻起来像是一种反模式。为什么要切换这些div?使用指令可能会使在语境中重新理解
无论如何,如果您认为这样做有充分的理由,可以使用$applyAsync(yourFunction)
计划函数运行
$applyAsync
将在以后对要执行的函数进行排队。如果在$scope
初始化期间放置该队列,则函数将在其余观察程序执行后运行。这实际上取决于您所指的角度完成。因为角度完成确实永远不会完成,所以它会持续运行运行其摘要周期。每个进程都有不同的规格,因此您不能简单地捕获所有事情何时完成(至少我不知道)。但我知道有两个用于ng repeat和ng bind的自定义指令,它们会发出事件,让您知道它已完成(您通过$scope.$on()捕获它们)-虽然不太理想……啊,我明白了,好吧。好吧,更具体地说,我的问题是,当angular正在做它所做的事情时,我在dom中暴露了以下内容:{{variableName}
,然后(完成后),被替换为variableValue
,例如。一旦这部分完成,我想能够显示Angular刚刚处理的是什么。我基本上在DOM中隐藏丑陋,直到Angular完成绑定。我不确定是否完全遵循,但听起来你应该使用ng show和ng hide。例如le真的很好,因为我觉得你不是在等待angular完成某件事,而是在等待其他动作,可能是承诺或ajax请求。你能设置简单的小提琴来展示你想要实现的目标吗?请参阅编辑,非常感谢你迄今为止的帮助。仍然不能100%确定你在“等待”什么对于angular完成,因为一切都很疯狂,但我认为ng if将是一种方式。检查@user3632710 answer这真的取决于你所说的angular完成的确切含义。因为angular真的从来没有完成过,它一直在运行它的摘要循环。每个过程都有不同