2017-10-27 1 views
1

Ich versuche eine Funktion zu schreiben, die Zeilen basierend auf paar Eigenschaften filtert. Wenn ich den Code ausführe, wird die Liste nicht angezeigt und es gibt einen Fehler, der besagt "TypeError: Kann Eigenschaft 'name' von undefined nicht lesen". Ich versuche, den Namen und den Ort der Spalten zu suchen. Hier ist mein HTML-Code

<tbody ng-if="routerList.length"> 
<tr ng-repeat="router in routerList | orderBy: rule|filter : search | limitTo:5:5*(naviagtion.currentPage-1) "> 
    <td><span>{{router.routerId}}</span></td> 
    <td><span>{{router.name}}</span></td> 
    <td><span>{{router.macAddr}}</span></td> 
    <td><span>{{router.primaryIP}}</span></td> 
    <td><span>{{router.status}}</span></td> 
    <td><span>{{router.location}}</span></td> 

</tr> 
</tbody> 

In meinem Controller habe ich eine Funktion Suche

$scope.search = function(item){ 
    if($rootScope.naviagtion.searchText == undefined){ 
     return true; 
    }else{ 
     if(item.router.name.indexOf($rootScope.naviagtion.searchText) != -1 || item.router.location.indexOf($rootScope.naviagtion.searchText) != -1){ 
      return true; 
     } 
    } 
    return false; 
} 

Kann mir jemand sagen, was falsch ist?

+0

Sie falsch geschriebene Navigation 'naviagtion'. – yBrodsky

+0

Ich weiß. Der vorhandene Code verfügt über eine Rechtschreibennavigation. Es ist nicht das Problem – chan

+0

dann ist das Problem wahrscheinlich bei 'item.router'. Name kann nicht gelesen werden Ursache .router ist nicht definiert? – yBrodsky

Antwort

0

Die Fehlermeldung "TypeError: Kann Eigenschaft 'name' von undefined nicht lesen" bedeutet, dass es eine Variable gibt, bei der der Punktoperator nicht definiert ist. Aufgrund des von Ihnen geposteten Codes sieht es so aus, als ob der Router nicht definiert ist.

router.name 

Ein schneller Check in Ihrer if-Anweisung könnte das Problem beheben.

if(item && item.router && ...) { } 

Wenn item.router definiert ist, dann könnte es irgendwo anders in Ihrem Code, wo Sie etwas undefiniert Objekt mit einem Punkt-Operator auf einen ‚Name‘ Eigenschaft.

Normalerweise verwende ich einen Debugger, um sicherzustellen, dass mein Objekt tatsächlich definiert ist, wenn ich diesen Fehler sehe.

Verwandte Themen