2016-03-21 4 views
0

Der Demo-Code automatische Vervollständigung für Angular Material hat den folgenden Code, den ich zu verstehen versuchen:diese latente Syntax und seinen Zweck in der unten Angular Materialcode Legendes

function querySearch (query) { 
    var results = query ? self.states.filter(createFilterFor(query)) : self.states, 
     deferred; 
    if (self.simulateQuery) { 
    deferred = $q.defer(); 
    $timeout(function() { deferred.resolve(results); }, Math.random() * 1000, false); 
    return deferred.promise; 
    } else { 
    return results; 
    } 
} 

Insbesondere, was die Rolle der , deferred ist Teil in var results = query ? self.states.filter(createFilterFor(query)) : self.states, deferred;? Das Objekt deferred wurde an dieser Stelle noch nicht einmal durch $q.defer(); definiert.

+0

@SimpleJ dank geschrieben! Ich habe der Frage mehr Code hinzugefügt. – Price

Antwort

3

Es ist ein var declaration mit einem großen Initialisierer für die Variable results und kein Initialisierer für die Variable deferred.

Es gleichermaßen

var results = query ? self.states.filter(createFilterFor(query)) : self.states; 
var deferred; 

oder

haben könnte suchen sie in dieser
var results, deferred; 
results = query ? self.states.filter(createFilterFor(query)) : self.states; 
+0

Danke! Ich weiß nicht, warum ich das nicht selbst gesehen habe – Price