Partage
  • Partager sur Facebook
  • Partager sur Twitter

Templates twig & AngularJS

Anonyme
    23 juillet 2016 à 21:51:41

    Bonjour,

    J'ai une question conne ! Pour les plus sensibles d'entre vous, préparez vous psychologiquement.

    Est ce qu'il est possible par une manière, aussi tordue soit-elle, de rendre les templates twig interprétables par angular ? Et je parle pas juste de l'affichage de variable, mais des trucs comme ng-repeat...

    En fait, on sera surement beaucoup à être d'accord sur le fait que qu'un site single page c'est grave cool pour les utilisateurs.

    Mais que les moteurs de recherche apprécient beaucoup moins.

    Du coup ça aurait été cool d'avoir un rendu serveur et un rendu côté client, le même rendu, mais sans avoir à se taper le double boulot et s'arracher les cheveux lors de maintenance.

    Du coup, si on pouvait avoir une vue compatible client et serveur ça serait top.

    Du côté serveur : une action du controller qui détecte si un paramètre "api" est fourni, si c'est le cas il retourne les données en Json, sinon il envoie les données à twig qui lui fait le rendu pour le moteur de recherche (ou la première page chargée par l'user).

    Bonne soirée

    Geof

    • Partager sur Facebook
    • Partager sur Twitter
      25 juillet 2016 à 10:56:50

      Bonjour.

      Je ne connais pas Twig, mais ça à l'air d'être du PHP.

      Tu peux très bien intégrer de l'Angular dans une vue PHP, JSP, ou toute autre technologie côté serveur.
      Par contre, une fois côté client, c'est à dire une fois la page PHP/JSP/... interprété en HTML, ton code Angular n'aura aucune idée de l'existence du PHP/JSP/...

      Mélanger 2 technos opposées (techno serveur & techno client) deviendra rapidement lourd à implémenter et maintenir.
      J'en ai fait l'expérience avec ASP.NET, techno serveur orienté composant, intégrant beaucoup de jQuery.

      -
      Edité par Pinguet62 25 juillet 2016 à 10:59:53

      • Partager sur Facebook
      • Partager sur Twitter
      Angular 2 est l'avenir, jQuery c'est de la merde !!! - Java 8 c'est l'an 2016+ (programmez en 1 ligne)
      Anonyme
        25 juillet 2016 à 20:58:10

        Bonsoir,

        merci pour ta réponse.

        En fait il ne s'agit pas vraiment de mélanger de deux technos opposés mais d'utiliser twig à la fois côté serveur et à la fois côté front.

        Twig est un moteur de template. Il fonctionne de la sorte :

        <div>{{article.description}}</div>
        <p>Valeur absolue de {{x}} : {{x|abs}}</p>
        
        <!-- mais il diffère des vues angular pour des choses plus complexes, se rapprochant alors de la syntaxe php : -->
        
        {% if x %}
        ...
        {% endif %}

        même si il y a des différences, la syntaxes reste quand même relativement proche. Et que ça soit du côté de twig ou du côté des vues angular, on passe des variables aux templates



        • Partager sur Facebook
        • Partager sur Twitter
          20 mars 2019 à 19:38:40

          C'est ce que j'ai pu trouvé dans mes recherches
          <ul ng-repeat="phones in phone">
              <li>{{ '{{ phone.name }}' }}</li>
          </ul>


          Et pour passer des varible de twig à angularJS il faut faire ce qui suit

          {% set users = [{'name':'John Doe'},{'name':'Jane Doe'}] %}
           
          <div ng-app="UsersApp">
              <div ng-controller="UsersListCtrl" ng-init='users={{ users|json_encode|raw }}'>
                  <ul ng-repeat="user in users">
                      <li>{{ '{{ user.name }}' }}</li>
                  </ul>
              </div>
          </div>



          • Partager sur Facebook
          • Partager sur Twitter
          Sewonou Lokossou

          Templates twig & AngularJS

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown