Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

TypeError: $scope.apply is not a function

I am trying to render the contacts list after retrieving it thru rdflib.js. It is loading properly and saving it in the list inside the scope.

But I am not able to render sine the $scope doesn't update, it seems like I am calling $scope.apply() in the wrong place. The error occurs because I call it outside angular, but I am deliberately calling it inside the function that is outside angular context (nowOrWhenFetched), so not making sense for me. any help?

$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();      });  }; 
like image 336
mzereba Avatar asked Feb 03 '15 19:02

mzereba


1 Answers

The function is $apply(), with the $.

like image 99
Michal Charemza Avatar answered Oct 04 '22 16:10

Michal Charemza