2015-02-03 9 views
30

Ich versuche, die Kontaktliste nach dem Abrufen durch rdflib.js zu rendern. Es wird ordnungsgemäß geladen und in der Liste im Bereich gespeichert.

Aber ich bin nicht in der Lage, Sinus zu rendern der $ scope nicht aktualisiert, es scheint, als würde ich $scope.apply() an der falschen Stelle aufrufen. Der Fehler tritt auf, weil ich es außerhalb angular nennen, aber ich nenne es absichtlich innerhalb der Funktion, die außerhalb des eckigen Kontexts ist (nowOrWhenFetched), also keinen Sinn für mich macht. irgendeine Hilfe?

$scope.load = function() { 
    //$scope.getContactsList(); 
    var g = $rdf.graph(); 
    var f = $rdf.fetcher(g); 

    f.nowOrWhenFetched($scope.path + '*',undefined,function(){ 

    var DC = $rdf.Namespace('http://purl.org/dc/elements/1.1/'); 
    var RDF = $rdf.Namespace('http://www.w3.org/1999/02/22-rdf-syntax-ns#'); 
    var LDP = $rdf.Namespace('http://www.w3.org/ns/ldp#'); 
    //var myOntology = $rdf.Namespace('http://user.pds.org/ontology/'); 
    var VCARD = $rdf.Namespace('http://www.w3.org/2006/vcard/ns#'); 

    var evs = g.statementsMatching(undefined, RDF('type'), VCARD('Individual')); 
    if (evs != undefined) { 
     for (var e in evs) { 
      var id = evs[e]['subject']['value']; 
      var fullname = g.anyStatementMatching(evs[e]['subject'], VCARD('fn'))['object']['value']; 
      var email = g.anyStatementMatching(evs[e]['subject'], VCARD('hasEmail'))['object']['value']; 
      var phone = g.anyStatementMatching(evs[e]['subject'], VCARD('hasTelephone'))['object']['value']; 

      var contact = { 
       id: id.slice(id.length-1), 
       Name: fullname, 
       Email: email, 
       Phone: phone 
      }; 

      $scope.contacts.push(contact); 
     } 

    } 

    $scope.apply(); 

    }); 

}; 
+12

Sie haben es falsch geschrieben. Es sollte $ scope sein. $ Apply() ' – mengstrom

+0

Es sieht so aus, als ob dies einer der häufigsten Fehler ist, die neue eckige Programmierer machen. Und ich falle früher in dieselbe Falle. –

Antwort

112

Die Funktion ist $apply(), mit dem $.

+14

um klar zu sein er meinte '$ scope. $ Apply' – Relic

+3

so wird es $ scope sein. $ Apply() – vijay