Buscar

ElementFieldRequired.js

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

// Carregando/criando o módulo de componentes.
try { angular.module("components") } catch (e) { angular.module("components", []); }
/**
 * Atributo responsável porque atualizar o visual dos campos mostrando que os mesmos são obrigatórios.
 */
angular.module("components").directive("fieldRequired", [function ()
{
 return {
 restrict: "A",
 link: function (scope, element, attrs)
 {
 /**
 * Define se o elemento é uma datepicker.
 */
 var isDatePicker;
 /**
 * Define se o elemento é uma input.
 */
 var isInput;
 /**
 * Define se o elemento é uma textarea.
 */
 var isTextarea;
 /**
 * Define se o elemento é um select.
 */
 var isSelect;
 /**
 * Inicializa a funcionalidade do atributo.
 */
 var initialize = function ()
 {
 isDatePicker = element.context.localName == "date-picker";
 isInput = element.context.localName == "input";
 isTextarea = element.context.localName == "textarea";
 isSelect = element.context.localName == "select";
 if (isDatePicker || isInput || isTextarea || isSelect)
 {
 scope.$watch(attrs.fieldRequired, updateClasses);
 scope.$watch(attrs.ngModel, updateClasses);
 updateClasses();
 }
 };
 /**
 * Atualiza as classes do componente.
 */
 var updateClasses = function ()
 {
 if (validate())
 {
 element.removeClass("required");
 element.addClass("valid");
 }
 else
 {
 element.removeClass("valid");
 element.addClass("required");
 }
 }
 /**
 * Realiza a validação do campo e retorna o resultado.
 * @return boolean
 */
 var validate = function ()
 {
 return attrs.fieldRequired ? scope.$eval(attrs.fieldRequired) : scope.$eval(attrs.ngModel);
 }
 // Força a inicialização do atributo.
 initialize();
 }
 }
}]);

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando