我是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)}}
无效。有人能告诉我这里有什么问题吗?
答案 0 :(得分:0)
<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>
expression
中的ng-switch
可以是范围函数调用,范围变量,也可以是值。但在ng-switch-when="something"
中,此处something
应为值。即使我们提到范围变量或函数调用,它也不起作用。你提到的是,它将它作为一个值,然后比较ng-switch
中的值然后呈现匹配。但是在您的代码中,您在isNumber()
中调用了一个函数ng-switch-when
。所以,它不匹配。即使在第二种情况下,它应该是url
的值,而不是变量。但是,如果您想使用函数来呈现DOM,请转到ng-if
而不是ng-switch
。 ng - if="funcA()"
将起作用,但在每个摘要周期执行(监视)以了解该值。但调用ng-if
内的函数也不是一个好的解决方案。有关详细信息http://autoform.meteorapp.com/quickform