DOM 模板获取模态数据前的操作
DOM manipulation before the template gets modal data
当我的模式没有任何记录可显示时,我想在页面上显示一条错误消息。这可能是在初始加载时或在页面上应用某些过滤条件之后。
我在应用过滤器后使用 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>
我 运行 遇到了类似的情况,并通过使用 $timeout
服务找到了一个丑陋但可行的解决方案。在您的情况下,您将有一个范围变量,我们将其称为 loadTimeGiven = false
并在 $timeout
之后将其设置为 true
。然后简单地做
ng-if="(filtered | filter :priceRange).length ==0 && loadTimeGiven"
或者,您可以根据您的模式有权访问的服务设置 loadTimeGiven
。
当我的模式没有任何记录可显示时,我想在页面上显示一条错误消息。这可能是在初始加载时或在页面上应用某些过滤条件之后。
我在应用过滤器后使用 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>
我 运行 遇到了类似的情况,并通过使用 $timeout
服务找到了一个丑陋但可行的解决方案。在您的情况下,您将有一个范围变量,我们将其称为 loadTimeGiven = false
并在 $timeout
之后将其设置为 true
。然后简单地做
ng-if="(filtered | filter :priceRange).length ==0 && loadTimeGiven"
或者,您可以根据您的模式有权访问的服务设置 loadTimeGiven
。