Salve a tutti
mi sto addentrando nel mondo di angularjs iniziando con la versione 1 per poi passare alle successive . Ho gia' una certa esperienza con javascript "classic".
Al momento non riesco a padroneggiare bene ngresource
faccio una chiamata con questa libreria al server per passare oltre ad i soliti dati, la mail che mi serve per recuperare la foto da gravatar per la chiamata a gravatar usa una apposita directive , che per� si attiva prima che mi ritornino i valori dal db.
Non so', se devo in qualche maniera posticipare l'attivazione della directive ? attivarla nel $resource ?
Non s�! ho fatto varie prove ma non ne sto venendo fuori
qualcuno puo darmi una mano ?
grazie
codice:
.factory('contacts', function($resource){
var resource = $resource('http://localhost/Angular/Backend/contats/:id'
, {id: '@id'}, {
update: {method: 'PUT'}
});
return {
get: function(success, error){
return resource.query();
},
find: function(id, success, error){
return resource.get({id: id}, success, error);
},
create: function(){
return new resource();
},
destroy: function(id, success, error){
resource.delete({id: id});
}
};
})
.directive('gravatar', function($timeout){
var defaultGravatarUrl = "http://www.gravatar.com/avatar/000?s=200";
var regex = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
function getGravatarUrl(email) {
alert("email="+email);
if (!regex.test(email))
return defaultGravatarUrl;
return 'http://www.gravatar.com/avatar/' + md5(email) + ".jpg?s=100";
}
function linker(scope) {
scope.url = getGravatarUrl(scope.email);
scope.$watch('email', function (newVal, oldVal) {
if (newVal !== oldVal) {
scope.url = getGravatarUrl(scope.email);
}
});
}
return {
template: '<img ng-src="{{url}}"></img>',
restrict: 'EA',
replace: true,
scope: {
email: '='
},
link: linker
};
})
html:
<h1><div class="img-circle"><gravatar email="userEmail" size="90" ></gravatar></div> {{contact.name}}</h1>