Quels sont les avantages d'une directive fonction de modèle dans Angularjs?

Conformément à la documentation d'un template peut être une fonction qui prend deux paramètres, un element et attributes et retourne une chaîne de caractères représentant le modèle. Il remplace l'élément en cours avec le contenu de l'HTML. Le processus de remplacement migre tous les attributs et les classes de l'ancien élément de la nouvelle.

La compile fonction traite de transformer le modèle DOM. Elle prend trois paramètres, un element, attributes et transclude fonction. Le transclude paramètre a été désapprouvée. Elle renvoie une link fonction.

Il apparaît qu'un template et un compile fonctions sont très similaires et peuvent atteindre la même chose. Le template fonction définit un modèle et compile fonction modifie le modèle DOM. Cependant, il peut être fait dans le template fonction elle-même. Je ne vois pas pourquoi modifier le modèle DOM à l'extérieur de la template fonction. Et vice-versa, si le DOM peut être modifié dans le compile fonction de ce qui est le besoin pour un template fonction?

  • Si vous retourne la chaîne qui est la personne à charge sur les attributs à partir d'un modèle de fonction, utiliser moins de code que dans le compiler depuis de ne pas avoir à injecter $compile et l'utiliser. Angulaire va le faire à l'interne au lieu
  • Je n'ai pas vraiment suivi. Pourriez-vous donner un exemple s'il vous plaît? Parlez-vous de retourner une chaîne de modèle qui utilise les valeurs de attrs? Comme "<div size=\"" + attrs.size + "\"></div>".
  • oui .. comme par votre exemple. Mais pourrait également contenir des conditions aussi... if(attrs.type=='somVal') {return string1;}else{ return string2}
  • Ok, je vois, semblable à la <input type="text|bouton|case|..."> où l'attribut n'a pas besoin d'être compilé.
  • Où l'attribut n'a pas besoin d'être interpolées je dois dire vraiment.