2014-04-15 11 views
28

Jestem początkujący dla AngularJS. Próbuję wyświetlić "No Tag Found" podczas procesu filtrowania przy pomocy "ng-show".ng-show, gdy długość tablicy wynosi zero

JS:

function simpleController($scope) 
{ 
$scope.tags = ['HTML','CSS','Jquery','Bootstrap','AngularJS']; 
} 

HTML:

<div ng-controller="simpleController"> 
<input class="txt" type="text" ng-model="nameText" /> 
<div> 
<ul> 
    <li ng-repeat="myKeys in tags| filter:nameText">{{myKeys}}</li> 
</ul> 
<div ng-show="!tags.length">No Tag Found</div> 
</div> 
</div> 

Kiedy wpisać dowolną wartość inną niż szereg dolin, nie jestem w stanie uzyskać "Nie znaleziono tagu" Stosując powyższe kod. Proszę pomóż. Dzięki.

Odpowiedz

41

Jeśli filtrujesz w swoim ng-repeat, musisz zastosować ten sam filtr dla ciebie ng-show. Jeśli nie zrobisz, ng-show zawsze odnoszą się do pełnej tablicy:

<div ng-show="!(tags| filter:nameText).length">No Tag Found</div> 

skrzypce robocza: http://jsfiddle.net/HB7LU/3149/

+1

Dzięki za skrzypce. Tego właśnie szukałem. Pozdrawiam – user2218497

+1

Możesz również użyć '! Count (tags)' [Kliknij tutaj, aby zobaczyć zmodyfikowaną wersję skrzypiec Cetii] (http://jsfiddle.net/HB7LU/26922/) –

17

tylko lepiej użyj NG-hide:

<div ng-hide="tags.length">No Tag Found</div> 
11
<div class="box" ng-show="team_stores.length > 0" > 

pracował dla mnie

2

łatwy sposób utworzyć filtr ... Demo jest jak poniżej

var app = angular.module('myApp', []); 
 
app.controller('myctrl', function ($scope) { 
 

 
    $scope.friends = [ 
 
     { name: "Peter", age: 20 }, 
 
     { name: "Pablo", age: 55 }, 
 
     { name: "Linda", age: 20 }, 
 
     { name: "Marta", age: 37 }, 
 
     { name: "Othello", age: 20 }, 
 
     { name: "Markus", age: 32 } 
 
    ]; 
 

 
});
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
<title>welcome</title> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
</head> 
 
<body ng-app="myApp" ng-controller="myctrl"> 
 
    Name: <input ng-model="filter" type="text" /> 
 
    <ul> 
 
     <li ng-repeat="friend in friends |filter:filter">{{friend.name}}</li> 
 

 
     <li ng-show="!(friends| filter:filter).length">data not found</li> 
 
     <!--<link ng-repeat="friend in friends|filter:isActive ">--> 
 
    </ul> 
 

 

 
</body> 
 
</html>

Powiązane problemy