Baixe o app para aproveitar ainda mais
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(); } } }]);
Compartilhar