gpt4 book ai didi

javascript - Angular JS isNumber on ng-switch-当不工作时

转载 作者:行者123 更新时间:2023-11-28 02:46:32 24 4
gpt4 key购买 nike

我是 Angular 的新手。我正在尝试根据某些条件切换 div :

  <td>
<div layout="row" layout-align="start center">
<img ng-if="row.pin" ng-src="{{pinImageUrl}}" alt="Pinned @ {{row.pin}}" class="img-pin" />
<div ng-switch="checkUrl">
<a ng-switch-when="{{isNumber(row.id)}}" href="numberUrl ">
{{getName(row)}}
</a>
<a ng-switch-when="url" href="{{url + row.id}}">
{{getName(row)}}
</a>
<span ng-switch-default href="aaaaaa">
{{getName(row)}}
</span>
</div>
</div>
</td>

但是 {{isNumber(row.id)}} 不工作。谁能告诉我这里出了什么问题?

最佳答案

  <div ng-switch="checkUrl">
<a ng-switch-when="{{isNumber(row.id)}}" href="numberUrl ">
{{getName(row)}}
</a>
<a ng-switch-when="url" href="{{url + row.id}}">
{{getName(row)}}
</a>
<span ng-switch-default href="aaaaaa">
{{getName(row)}}
</span>
</div>

ng-switch 中的expression 可以是作用域函数调用、作用域变量,也可以是一个值。但是在 ng-switch-when="something" 中,这里的 something 应该是一个值。即使我们提到范围变量或函数调用,它也不起作用。你提到的,它将它作为一个值,然后比较 ng-switch 中的值,如果匹配则呈现。但是在您的代码中,您在 ng-switch-when 中调用函数 isNumber()。所以,它不匹配。即使在第二种情况下,它也应该是 url 的值,而不是变量。但是,如果您想使用函数来呈现 DOM,请使用 ng-if 而不是 ng-switch。 ng-if="funcA()" 会起作用,但会在每个摘要周期执行(监视)以了解值。但是在 ng-if 中调用函数也不是一个好的解决方案。更多信息 ng-if being called more times than it should

关于javascript - Angular JS isNumber on ng-switch-当不工作时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41309456/

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