gpt4 book ai didi

javascript - angularJs - 如何防止执行额外的代码

转载 作者:行者123 更新时间:2023-11-30 20:38:44 24 4
gpt4 key购买 nike

我们有一个复杂的编辑表单,其中特别包含以下代码:

<uib-tab ng-show="currentItDraftHeader.treeType===2">
<uib-tab-heading>
<i class="fa fa-picture-o"
uib-tooltip="@Labels.images"
tooltip-placement="bottom">
</i>
</uib-tab-heading>
@Html.Partial("ImageSelector")
</uib-tab>

加载表单时,出现一个阻止创建 currentItDraftHeader 的错误。然而,ImageSelector 表单正在被调用,并且来自其 Controller 的代码也被执行。我怎样才能防止这种情况发生?我还有另一个问题 - 我有 LoadView 方法,它有几个函数,每个函数都调用服务来获取数据。我想在第一个请求失败后立即停止代码的执行,但由于它们都是异步的,所以我认为它们都已执行。防止在第一个错误后调用不必要代码的最佳方法是什么?

最佳答案

ng-show确定元素是否可见但 DOM无论如何都会创建,因此 ImageSelector被调用,

ng-show

你应该使用ng-if而不是 ng-show

ng-if如果条件为 false,则确定是否创建元素然后是 DOM不会被创建并且ImageSelector子不被调用。

ng-if

所以,试试这个 <uib-tab ng-if="currentItDraftHeader.treeType===2">

对于第二个问题,你必须等待第一个请求检查它是否失败然后继续另一个,看看promises看看如何处理。

async / await 如果你不想的话,这是一个很好的选择 promises

关于javascript - angularJs - 如何防止执行额外的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49522377/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com