120 votes

Ce qui ' s l’utilisation de Jade ou guidon lors de l’écriture AngularJs apps

Je suis nouveau(ish) de l'ensemble de javascript full stack applications, et de nouvelles Angulaire, donc j'espérais que quelqu'un peut mettre les pendules à l'heure pour moi ici.

Pourquoi aurais-je besoin pour utiliser un template cadre comme le Jade ou le Guidon lors de l'écriture de côté client des applications en utilisant AngularJS.

Je dois dire que je n'ai jamais utilisé l'un de ces templates cadres. Donc, je ne suis pas familier avec les avantages complètement. Mais quand je regarde le Guidon par exemple, il fait beaucoup des mêmes choses que je ferais dans Angulaire, boucles etc.

Aussi loin que je peux dire, il serait le plus judicieux pour créer les modèles Angulaire à l'aide de HTML propre et ensuite faire tout de templating côté client, et de combiner cela avec une API première approche à l'aide d'un noeud et de mongo par exemple.

La raison de cette confusion est que beaucoup des exemples que j'ai trouver sur GitHub faire usage de Jade, et il semble contre-intuitif pour moi.

Merci de m'éclairer, et me droite. J'aimerais apprendre des pratiques exemplaires que de personnes qui en savent beaucoup plus que moi.

Merci

62voto

thatmarvin Points 828

J'utilise Jade pour générer des modèles utilisés par AngularJS parce que je déteste écrire du HTML pur. Cela ressemble à quelque chose comme:

 .control-group(
  ng-form
  name='emailGroup'
  ng-class='{"ng-error": emailGroup.$invalid}'
)
  label.control-label Email
  .controls
    input(
      type='email'
      ng-model='user.email'
      required
      placeholder='you@example.com'
      focus-on='focusEmail'
    )
 

… Ce qui, à mon avis, est beaucoup plus propre que le HTML simple.

61voto

Nick Wiggill Points 1914

Jay, ceux qui sans broncher faveur de Jade dans Angulaire de l'environnement sont ceux qui ne parviennent pas à comprendre que la logique de vue appartient au client, et la logique métier sur le serveur, comme vous avez dit.

Récemment, j'ai revu certains de code où la droite Angulaire de template aurait fait un bien meilleur travail que le mélange de Jade, juste à travers le maintien de la simplicité.

De côté à partir d'un modèle d'extension, Jade n'apporte rien d'utile à la table Angulaire n'est pas déjà approvisionnement. Et, soyons honnête: en Utilisant le principe de "favoriser la composition au cours de l'héritage" (c'est à dire partiels), vous ne devriez pas avoir besoin de modèle d'extensibilité. Je ne considère pas trouver de Jade "plus facile à analyser" que le HTML soit une préoccupation valable... en fait, c'est risible pour tout professionnel de réclamer ce.

Il est l'un valide, spécialisées cas pour le serveur-côté de template: Optimisation, en se souvenant que l'optimisation est généralement une Mauvaise Chose. Où la performance est véritablement en question, et vous avez la capacité du serveur de rechange pour gérer cela, côté serveur de template peut aider. Cela s'applique à des produits tels que Twitter et camp de base, où le coût de faire beaucoup de côté de serveur de travail est compensée par les gains de la réduction de la demande au serveur.

Comme pour le Guidon, il n'est pas nécessaire de remplacer AngularJS (étonnant) côté client, la création de modèles.

46voto

Alex Ford Points 15277

Honnêtement, je ne comprends pas pourquoi les gens se soucient de la différence entre ceci:

<html ng-app>
 <!-- Body tag augmented with ngController directive  -->
 <body ng-controller="MyController">
   <input ng-model="foo" value="bar">
   <!-- Button tag with ng-click directive, and string expression 'buttonText' wrapped in "{{ }}" markup -->
   <button ng-click="changeFoo()">{{buttonText}}</button>
   <script src="angular.js">
 </body>
</html>

et ceci:

html(ng-app="ng-app")
  // Body tag augmented with ngController directive  
  body(ng-controller="MyController")
    input(ng-model="foo", value="bar")
    // Button tag with ng-click directive, and string expression 'buttonText' wrapped in "{{ }}" markup
    button(ng-click="changeFoo()") {{buttonText}}
    script(src="angular.js")

Sauf que je trouve un peu plus lisible. Légèrement. Je ne comprends pas pourquoi les gens sont si fervente sur le sujet. C'est tout bikeshedding si vous me demandez. La différence est négligeable et tout programmeur compétent pourrait facilement traduire l'une dans l'autre au bout de cinq secondes sur Google. Utilisez ce que vous voulez et laisser tout le monde se quereller pour rien. Choisissez vos batailles et de participer à des débats sur les choses qui comptent vraiment, comme les réacteurs atomiques ;)

14voto

nXqd Points 2805
  1. Vous n'avez pas besoin d'utiliser de Guidon avec AngularJS, car il dispose de son propre moteur de template.
  2. La raison pour laquelle ils utilisent de Jade, parce que c'est juste un serveur de moteur de rendu qui sera compilé en html et servi par angularJS plus tard sur le frontend.

Donc, TL;DR, sur le serveur, vous pouvez utiliser n'importe quel langage [jade,haml,...] pour générer le html juste de la structure de votre application, elle n'a rien à voir avec angularJS, puisqu'il sera rendu et de travailler avec le format HTML au moment de l'exécution sur le frontend.

Vous n'avez pas à utiliser de Jade sur le serveur, et je suggère de ne pas utiliser depuis qu'il va confondre les nouveaux développeurs. Dans les projets que vous voyez qu'ils utilisent Jade seulement parce que c'est plus propre et qu'ils y sont habitués, et si elle utilise avec angularJS, c'est le seul travail est de générer du html sans aucune logique.

8voto

Fenchurch Points 365

L'on a accepté la réponse est quelque peu unilatérale, et néglige le fait que toute installation de pré-compilateur pour le HTML a un grand usage pour TOUT type de projet HTML: Composition et résultant de la majoration de la flexibilité.

Travailler seul sur angulaire de l'app? Donner Jade essayer.

Jade améliore votre capacité à modulariser le code HTML, diminue la quantité de temps que vous avez passé sur le débogage de code HTML et encourage également la construction de balisage des stocks.

Lors de la conception du temps il peut y avoir une énorme quantité d'itération sur les parties HTML. Si la sortie HTML est basé sur un ensemble de jade fichiers, il est facile pour l'équipe d'être flexible sur l'évolution des besoins. Aussi, en changeant le balisage via la re-composition de jade comprend est beaucoup plus robuste que la ré-écriture du pur HTML.

Cela étant dit, je reconnais l'aversion générale mélange angulaire avec jade en production ou en phase de développement. L'introduction d'un autre de la syntaxe de la connaissance est une mauvaise idée pour la plupart des équipes et de l'utilisation de jade pourrait masquer l'inefficacité de la gestion de projet par abstraction, une partie du travail serait interdit par la SEC principes (par exemple, être paresseux sur le balisage de préparation)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X