2017-10-06 3 views
0

Dans mon projet, j'utilise la directive uibTypeahead de Angular UI Bootstrap. Bien que j'utilise cette directive en data- -normalisée formulaire <input data-uib-typeahead="..." /> qui est valide HTML, la directive elle-même générer du code HTML qui utilise des noms d'attributs invalides (selon la validation HTML), par exemple. ng-class et ng-show.Puis-je configurer Bootstrap Angular UI pour utiliser des noms d'attributs HTML valides?

J'essaye maintenant de faire passer le code entier de mon application HTML validator pour attraper quelques problèmes qui pourraient avoir été négligés, mais je le trouve impossible à faire, à cause de la sévérité des erreurs générées par des noms d'attribut invalides dans le balisage généré par Angular UI Bootstrap uibTypehead directive.

Existe-t-il un moyen de configurer Bootstrap Angular UI pour normaliser tous les attributs dans son balisage généré pour utiliser le formulaire data- (ou x-) préfixé?

Répondre

1

Vous pouvez décorer la directive uibTypeahead avec vos fichiers html comment normlized noms

Mettre cela sur

angular.module('yourModule') 
.config(['$provide'], functiond($provide){ 
$provide.decorator('uibTypeaheadPopupDirective', function($delegate) { 
      directive = $delegate[0]; 
      directive.templateUrl = 'path_for/typeAheadPopup.html'; 

      return $delegate; 
     }); 
$provide.decorator('uibTypeaheadMatchDirective', function($delegate) { 
      directive = $delegate[0]; 
      directive.templateUrl = 'path_for/typeAheadMatch.html'; 

      return $delegate; 
     }); 

et créez votre htmls avec vos est propriétaire des noms de normlize.

typeAheadMatch.html Exemple

<a href 
tabindex="-1" data-ng-bind-html="match.label | uibTypeaheadHighlight:query" 
data-ng-attr-title="{{match.label}}"></a> 

Vous pouvez avoir l'exemple html des ui-bootstrap-tpls.js sur le templateCache.

angular.module("uib/template/typeahead/typeahead-match.html", []).run(["$templateCache", function($templateCache) { 
    $templateCache.put("uib/template/typeahead/typeahead-match.html",