web-dev-qa-db-fra.com

Quelle est la méthode recommandée pour structurer une vue de composant personnalisé Joomla 3 à l'aide d'angularJS?

Il y a très peu d'informations disponibles des utilisateurs qui ont intégré avec succès angular js dans une vue en liste de composants personnalisés joomla. J'ai trouvé ce qui suit:

https://stackoverflow.com/questions/23365907/how-to-integrate-angularjs-app-inside-joomla et http://jeviathon.com/2014/06/02/joomla3 /

et j'ai lu les docs sur l'interface ajoom de joomla - https://docs.joomla.org/Using_Joomla_Ajax_Interface - ce qui est utile.

Mon projet spécifique est grand j! Le site 3.4 avec un certain nombre de composants personnalisés a été lancé dans composant-creator.com, chacun avec une vue formulaire, élément et liste. Mon objectif initial est de tirer parti de angular sur certaines vues de liste adaptées pour une recherche astucieuse et un filtrage UX.

Quelles sont les pratiques recommandées par les experts? Quelqu'un a-t-il fait ça? Quelles sont les étapes/pièges.

Merci

7
user2097091

Selon mon expérience:

  • Vues JSON : J'ai créé des composants basés sur le rendu JSON automatique FoF https://github.com/akeeba/fof In this manière, il est facile de charger/obtenir des requêtes. Malgré cela, certaines tâches peuvent être simplement résolues avec une simple fonction de contrôleur. Avec FoF, dans un cas parfait, vous pouvez appeler une URL (index.php? Option = com_todo & view = taches & format = json) et récupérer la sortie JSON sans code supplémentaire. En pratique, vous devrez peut-être définir un affichage/tmpl/tasks_json.php pour traduire un fuseau horaire ou encoder des caractères pour AngularJS.

  • À propos de l'interface Ajax Joomla : Il s'agit d'une fonctionnalité tentante. Vous pouvez simplement créer un plugin ou un module pour intégrer les requêtes Ajax. C'est la technologie pour l'intégration d'un module Ajax. Mais, pour le développement de composants, j'opte pour la génération JSON au niveau des composants pour un meilleur contrôle.

  • Gestionnaire de modules : AngularJS a sa propre définition de modules. La plupart des applications AngularJS sont organisées en applications, contrôleurs et services. Par ailleurs, Joomla dispose d’un moyen simple d’ajouter du Javascript à une page (addScript ou addScriptDeclaration). Ainsi, dans toute organisation de projet saine, vous avez prévu une boîte à outils de développement pour compiler tous les fichiers AngularJS en fichiers minimisés.
  • Joomla MVC <-> AngularJS MV * Il n'y a pas de traduction directe entre les deux cadres. Ensuite, Joomla View est juste une toile où les vues AngularJS vivent. Les services AngularJS peuvent correspondre aux modèles/tables Joomla.
  • Sécurité et authentification AngularJS doit suivre les directives de la structure Joomla. Namenly, les jetons dans les requêtes $ resource et $ http. Toutes les actions doivent être vérifiées par ACL.
7
Anibal

J'ai 3 Angular angulaires tournant actuellement contre Joomla.

L'idée de base est de configurer la ressource et de la laisser traiter les champs de requête d'option/format/contrôleur, puis dans le contrôleur, appelez votre modèle pour faire le calcul, puis en fonction de l'emplacement où vous avez stocké le résultat dans le modèle,

$ response = new stdClass (); $ response-> data = $ model-> data;

echo json_encode ($ response);

super propre, super facile.

En ce qui concerne le rendu de votre application, il existe une seule vue joomla pour chaque application dans mon cas. le tmpl/default.php est fondamentalement juste une inclusion au code HTML principal.

J'utilise ngBoilerplate comme base pour mes constructions, j'ai donc dû modifier index.html pour trouver les scripts que Grunt insérait.

L'application elle-même réside dans/media/com_extension/lib/app/build. Je l'ai laissé dans la construction parce que cela n'a aucun effet et maintenant je peux facilement éditer et construire à partir du dossier où l'application va être servie.

1
Joomsavvy