Javascript 加载所有内容后,显示具有多个ng repeat的表单
我有一个有多个ng重复块的表单,其他块没有ng重复。在呈现表单之前,如何等待所有内容加载完毕 例如Javascript 加载所有内容后,显示具有多个ng repeat的表单,javascript,angularjs,Javascript,Angularjs,我有一个有多个ng重复块的表单,其他块没有ng重复。在呈现表单之前,如何等待所有内容加载完毕 例如 <form name="forms.confirmForm" ng-submit="submitForm()"> <div> <div ng-repeat="phone in candidate.phones" style="position:relative"> -- write out some value &l
<form name="forms.confirmForm" ng-submit="submitForm()">
<div>
<div ng-repeat="phone in candidate.phones" style="position:relative">
-- write out some value
</div>
<div class="small-12">
<label>first name
</label>
<input name="firstName" type="text" />
<div ng-repeat="phone in candidate.email" style="position:relative">
-- write out some value
</div>
</div>
<div class="apply-bar">
<button class="button button-apply" type="submit">
apply
</button>
</div>
</form>
**该信息来自一个模型,并加载一次。ng repeat只是获取模型的一部分,并迭代使用ng if检查是否已加载数组项
<form name="forms.confirmForm" ng-submit="submitForm()"
ng-if="candidate.phones.length > 0 && candidate.email.length > 0">
如果在您的div中:
<div ng-if="candidate.phones">
<div ng-repeat="phone in candidate.phones" style="position:relative">
-- write out some value
</div>`
有两种方法可以处理这个问题 你用一组空的电话/电子邮件初始化你的模型candiate。在这种情况下,您不需要在模板中执行任何操作,因为ng重复将应用0次。导致没有任何渲染。 在没有modelcandidate时使用ng if阻止渲染,和/或在模型没有电话/电子邮件时使用ng if阻止ng重复尝试渲染。 基于第二个选项尝试此操作
<form name="forms.confirmForm" ng-submit="submitForm()">
<div ng-if="candidate"> <!--Prevent rendering if there is no candiate model-->
<div
ng-if="candidate.phones" <!--Prevent rendering if canidate doesn't have phones param-->
ng-repeat="phone in candidate.phones"
style="position:relative"
>
-- write out some value
</div>
<div class="small-12">
<label>first name
</label>
<input name="firstName" type="text"/>
<div
ng-if="candidate.email"
ng-repeat="phone in candidate.email"
style="position:relative"
>
-- write out some value
</div>
</div>
<div class="apply-bar">
<button class="button button-apply" type="submit">
apply
</button>
</div>
</div>
</form>
谢谢,但有时我可能没有任何电话或电子邮件。这种解决方案意味着电话和电子邮件都必须存在,然后才能呈现。您也不需要检查长度是否大于0,只需将长度作为布尔值进行检查即可。0将等于false,1或多个将等于true。如何加载所有内容?您是否有多个$http请求?如果是,那么您可以收集他们的承诺并运行$q.all以进行同步。只需在中设置某种标志,然后在成功回调时,在表单上使用ng if=flag,您的第一种方法将显示包括提交按钮在内的内容。ng if我认为OP正在查找的内容。表单标记没有可见属性,提交按钮与ng if=candidate包装在同一个div中,因此它不可见。