2016-05-21 2 views
1

ich mit AngularJS arbeite, und ich bin ein Array von Objekten wie diese empfangen:Wenn eine dieser Eigenschaften null geht, dann zeigen nicht das Einzelteil

{ 
    "_id": 310243, 
    "name": "Five Star Babies: Inside the Portland Hospital", 
    "airsDayOfWeek": "Wednesday", 
    "airsTime": "21:00", 
    "firstAired": "2016-04-13T00:00:00.000Z", 
    "network": "BBC Two", 
    "overview": "An exclusive glimpse inside the UK's only private maternity hospital.\r\n", 
    "rating": null, 
    "ratingCount": 0, 
    "status": "Continuing", 
    "poster": "/someImage/path", 
    "subscribers": [] 
} 

tatsächlich das Objekt aus dieser Funktion kommt:

$scope.shows = Show.query(); // returns an array 
    _.forEach($scope.shows, function(item) { 
    if (item.rating === null) { 
     console.log(angular.toJson(item, 'pretty')); 
    } 
    }) 

, wie Sie es sehen ich brauche, dass, wenn die Eigenschaft „Bewertung“ oder „Poster“ in null kommt, dann in der Ansicht nicht das Element anzuzeigen, das dies der richtige Fall ist, wie Sie sehen, Bewertung kommt in null, also muss ich das ganze Element verstecken.

Ausblick:

<div ng-repeat="show in shows | filter:query | orderBy:'rating':true"> 
     <a href="/shows/{{show._id}}"> 
     <img ng-src="{{show.poster}}" width="100%"/> 
     </a> 
     <div> 
     <a href="/shows/{{show._id}}">{{show.name}}</a> 
     <p> 
      Episodes: {{show.episodes.length}} <br> 
      <span>Rating: {{show.rating}}</span> 
     </p> 
     </div> 
    </div> 

Irgendwelche Vorschläge?

Antwort

2

Scheint wie Sie nur Ihr Array für die gewünschten Werte filtern können.

$scope.shows = Show.query().filter(function(val) { 
    if (val.rating !== null && val.poster !== null) return val; 
}); 

Sie Das wird ein Array sans die Shows geben, die keine Bewertung/Poster haben.

0

versuchen Sie dies:

<div ng-repeat="show in shows | filter:query | orderBy:'rating':true" ng-hide="show.rating == null || show.poster == null"> 
     <a href="/shows/{{show._id}}"> 
     <img ng-src="{{show.poster}}" width="100%"/> 
     </a> 
     <div> 
     <a href="/shows/{{show._id}}">{{show.name}}</a> 
     <p> 
      Episodes: {{show.episodes.length}} <br> 
      <span>Rating: {{show.rating}}</span> 
     </p> 
     </div> 
    </div> 

Zugabe ng-hide="show.rating == null || show.poster == null" mit ng-repeat

Sie können in diese aussehen ques zu: How to show/hide if variable is null

Verwandte Themen