当一个名为lineItemsF.length
的数组为零时,我有一个警告显示给用户。我正在处理一个单页应用程序,所以一旦用户登录该数组将为零,几秒后数据将加载,以便该数组将有一些项目,因此,警报将消失。
该警报实际上是我在过滤器中使用的东西,在这种情况下,在搜索框中,当用户在该搜索框中键入内容并且过滤器未返回任何内容时,警报就会出现。
我制作了一个视频供您了解发生了什么,只需查看屏幕顶部的红色横幅,该横幅会在数据加载后自动删除。这不是我想要的,我想要的是在用户在搜索框中输入不正确的内容时看到警报。
我虽然使用$pristine
或$dirty
会有效,但我不知道我是否错误地使用了这些。
<!--this is the alert-->
<div class="alert"
ng-show="!lineItemsF.length">Did not match any search criteria
</div>
<!--this is the alert-->
<div ng-repeat="lineItem in lineItemsF = (lineItems | filter:search)">
<div class="panel">
<div class="panel-heading">
<h3 class="panel-title">{{:: lineLeague[0].leagueName}}</h3>
</div>
<div class="panel-body">
<table class="table table-bordered tables">
<thead class="tableHeader">
<tr>
...
</tr>
</thead>
有什么建议吗?
答案 0 :(得分:2)
只需将其置于警报条件
即可<div class="alert"
ng-show="searchCriteria.length > 0 && !lineItemsF.length">Did not match any search criteria
</div>
searchCriteria是搜索输入中的值,因此仅当条件不为空(或长度> 0)时才会显示。
答案 1 :(得分:0)
在div中使用ng-cloak
要么
ng-show="lineItemsF.length!=0"