我已經設置了顯示不同產品的頁面。我製作了一個帶有ng-model="query"
的搜索框,每當我鍵入我的查詢時,頁面就會自動更新爲我擁有的產品。當我的篩選器沒有結果時,如何返回消息?
問題是,每當查詢不匹配的東西頁面保持空白,這看起來不好。我希望該網站顯示一條消息,說明「找不到產品」,而不是空白頁面。我怎樣才能做到這一點?
我看過其他問題和他們的解決方案,但他們沒有工作。
這是我的產品顯示方式的代碼。正如你所看到的,我已經添加了一個ng-show="products.length === 0
作爲建議的一些解決方案,但是當我沒有匹配時該消息從不出現。
<ul class="list-group">
<li ng-repeat="product in products | filter:query" class="list-group-item">
<h3><a id="productName" href="#/products/{{product.name}}">{{ product.name }}</a></h3>
<img id="mainImage" ng-src="{{ product.imgUrl }}" alt="{{ product.name}}">
<p id="description"> {{ product.description }}</p>
<p id="price"> Price: {{ product.price }} £</p>
<p ng-show="products.length === 0">Nothing found</p>
</li>
</ul>
下面是產品的頁面我的控制器代碼:
//Controller that fetches the available products to display them in the view
app.controller('productListController', function($scope, $http){
$http.get('products/products.json').success(function(data){
$scope.products = data.products;
});
});
下面是搜索框代碼:
<div id="searchbox">
<div class="input-group">
<input type="text" class="form-control" ng-model="query" placeholder="Search for...">
<span style="width=1%;" class="input-group-btn">
<button class="btn btn-default" type="button"><span class="glyphicon glyphicon-search"></span></button>
</span>
</div><!-- /input-group -->
</div><!-- searchbox -->
謝謝,我更新了我的答案,避免了兩次過濾。 – Daniel