0

当我的模式没有任何记录要显示时,我想在页面上显示一条错误消息。这可能是在初始加载时,也可能是在页面上应用了一些过滤条件之后。

我在应用过滤器后使用 ng-if 检查结果集的记录数,这就是为什么当我的页面最初加载时,因为过滤后的结果中没有数据,它首先显示错误消息,然后后来它显示数据。

任何见解将不胜感激

prod.skulist 是我的模态。

 <ul class="prd-list">
                <li ng-repeat=" p in filtered =(prod.skulist | categoryFilter:prod.selectedFormat :prod.selectedRating) | filter :priceRange" id=" {{p.sku}}">
                    <figure class="prd-img" ng-click="wrapCtrl.showProdDetils(p.sku,prod.catName)">
                        <div style="background-image: url({{wrapCtrl.imageLocation+p.image}}); background-repeat: no-repeat;"></div>
                        <figcaption class="prd-nam f8">{{p.title}}</figcaption>
                        <span class="new-item" ng-show="{{p.isnew}}"><img src="Content/images/new.png" /></span>
                        <span class="new-item" ng-show="wrapCtrl.compareStreetDate(p.streetdate)"><img src="/Content/images/coming-soon.png" /></span>
                    </figure>
                    <div class="prd-price f5">
                        {{p.currentprice | currency}}<span class="sales" ng-show="{{p.onsale}}">ON SALE</span>
                        <span class="cart-btn" ng-click="wrapCtrl.addCart($event)"></span>
                        <div class="inactive-cart-btn" ng-show="wrapCtrl.compareStreetDate(p.streetdate)"></div>
                    </div>
                </li>
                </ul>

<div ng-if="(filtered | filter :priceRange).length ==0" class="error-box">
                    <div class=" wrp"><span class="error-head">I hate when this happens</span></div>
                    <div class="wrp error-message">
                        <span class="f9 pad-top">It looks like I don't have exactly what you are looking for.</span>
                        <span class="f9 pad-bot">try adjusting your filters to see more</span>
                    </div>
                </div>
4

1 回答 1

1

我遇到了类似的情况,并通过使用该$timeout服务找到了一个丑陋但有效的解决方案。在您的情况下,您将有一个范围变量,让我们调用它loadTimeGiven = false,然后将$timeout其设置为true. 然后简单地做

ng-if="(filtered | filter :priceRange).length ==0 && loadTimeGiven"

或者,您可以loadTimeGiven根据您的模态可以访问的服务进行设置。

于 2015-02-20T22:15:43.977 回答