2015-02-03 23 views
30

Sto provando a visualizzare l'elenco dei contatti dopo averlo recuperato tramite rdflib.js. Si sta caricando correttamente e salvandolo nella lista all'interno dello scope.

Ma non riesco a rendere sine il $ scope non si aggiorna, sembra che sto chiamando $scope.apply() nel posto sbagliato. L'errore si verifica perché lo chiamo fuori dall'angolo, ma lo sto deliberatamente chiamando all'interno della funzione che è al di fuori del contesto angolare (nowOrWhenFetched), quindi non ha senso per me. qualsiasi aiuto?

$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

Hai sbagliato a scrivere. Dovrebbe essere '$ scope. $ Apply()' – mengstrom

+0

Sembra che questo sia uno degli errori più frequenti che fanno i nuovi programmatori angolari. E cado nella stessa trappola, in precedenza. –

risposta

112

La funzione è $apply(), con il $.

+14

per intendersi intendeva '$ scope. $ Apply' – Relic

+3

quindi sarà $ scope. $ Apply() – vijay

Problemi correlati