Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
(function() {
var app = angular.module('habr-demo-app', []);
app.directive('habrRememberInCookie', habrRememberInCookie);
function habrRememberInCookie($interpolate) {
function link(scope, element, attrs, ngModel) {
var cookieName = $interpolate(attrs.habrRememberInCookie)($scope);
if(ngModel) {
if(!ngModel.$viewValue) {
ngModel.$setViewValue($.cookie(cookieName));
}
ngModel.$viewChangeListeners.push(function(value) {
if(!ngModel.$error.email){
setCookieValue(value);
}
});
return;
}
if(!element.val()) {
var savedValue = $.cookie(cookieName);
element.val(savedValue);
}
element.on('change', function(event) {
var newValue = element.val();
setCookieValue(newValue);
});
function setCookieValue(value) {
$.cookie(cookieName, value, {expires: 360});
}
}
return {
restrict: 'A',
require: '?ngModel',
link: link
};
}
})();
Директива AngularJS для запоминания e-mail